https://blog.csdn.net/love_taylor/article/details/77198850
第一:當出現Access denied for user 'root'@'localhost' (using password: YES)
解決方案:
1、打開MySQL目錄下的my.ini文件,在文件的最后添加一行“skip-grant-tables”,保存並關閉文件。(WIN7默認安裝,my.ini在C:\ProgramData\MySQL\MySQL Server 5.6)
2、重啟MySQL服務。
3、通過命令行進入MySQL的BIN目錄,輸入“mysql -u root -p”(不輸入密碼),回車即可進入數據庫。(WIN7默認安裝,BIN目錄為:C:\Program Files\MySQL\MySQL Server 5.6\bin)
4、執行“use mysql;”,使用mysql數據庫。
5、執行“update user set password=PASSWORD("123456") where user='root';”(修改root的密碼)
6、打開MySQL目錄下的my.ini文件,刪除最后一行的“skip-grant-tables”,保存並關閉文件。
7、重啟MySQL服務。
8、在命令行中輸入“mysql -u root -p 123456”,即可成功連接數據庫。
參考:http://blog.csdn.net/skywalker_leo/article/details/47274441
第二:MySQL中出現Access denied for user 'test'@'localhost' (using password: YES)
當數據庫出現這種錯誤時,一般是自己創建一個用戶沒有訪問權限。
(1)創建用戶
1、首先以root登陸,然后創建用戶
2、mysql> insert into mysql.user(Host,User,Password) values("localhost","test",password("123456"));
注意:此處的"localhost",是指該用戶只能在本地登錄,不能在另外一台機器上遠程登錄。如果想遠程登錄的話,將"localhost"改為"%",表示在任何一台電腦上都可以登錄。也可以指定某台機器可以遠程登錄。
3、然后測試登陸:mysql -u test -p 如果出現問題Access denied for user 'test'@'localhost' (using password: YES),則是由於權限問題
給test授權,就可以了
(2)給用戶授權
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
flush privileges;
格式:grant 權限 on 數據庫.* to 用戶名@登錄主機 identified by "密碼";
(3)查找數據庫中所有的用戶:select * from mysql.user
(4)授權test用戶擁有所有數據庫的某些權限:
mysql>grant select,delete,update,create,drop on *.* to test@"%" identified by "123456";
//test用戶對所有數據庫都有select,delete,update,create,drop 權限。
//@"%" 表示對所有非本地主機授權,不包括localhost。(localhost地址設為127.0.0.1,如果設為真實的本地地址,不知道是否可以,沒有驗證。)
//對localhost授權:加上一句grant all privileges on testDB.* to test@localhost identified by '123456';即可。
(5)刪除用戶
@>mysql -u root -p
@>密碼
mysql>delete from user Where User='test' and Host='localhost';
mysql>flush privileges;
mysql>drop database testDB; //刪除用戶的數據庫
刪除賬戶及權限:>drop user 用戶名@'%';
>drop user 用戶名@ localhost;
(6).修改指定用戶密碼
@>mysql -u root -p
@>密碼
mysql>update mysql.user set password=password('新密碼') where User="test" and Host="localhost";
mysql>flush privileges;
(7).列出所有數據庫
mysql>show database;
(8).切換數據庫
mysql>use '數據庫名';
(9).列出所有表
mysql>show tables;
(10).顯示數據表結構
mysql>describe 表名;
(11).刪除數據庫和數據表
mysql>drop database 數據庫名;
mysql>drop table 數據表名;
參考:http://blog.csdn.net/h1017597898/article/details/9815987