1. 程式人生 > >MySQL5.6.12 ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'

MySQL5.6.12 ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'

問題描述:

MySQL命令列,登陸root賬戶的時候,密碼為空,但是執行‘use mysql;’命令的時候,總是提示:‘Access denied for user ”@’localhost’ to database ‘mysql’ ’。

仔細看錯誤提示Access denied for user ''@’localhost’ to database ‘mysql’,意思就是:拒絕user為 ” 的賬戶登陸,雖然登陸名是’root’,但是在資料庫user表中是空,也就是 匿名使用者 登陸,沒有許可權。

解決辦法:

1.MySQL安裝目錄下找到 my.ini檔案,編輯,
找到[mysqlId]

,在之後添skip-grant-tables(跳過授權表),此時重啟 MySQL服務,開啟命令列,就可以使用空密碼登陸了。(記得重啟服務)

mysql -u root -p
//輸入密碼,直接使用回車,用空密碼登陸


mysql>use mysql;
//會提示:Database changed,此時就可以更改密碼了


mysql>update user set password=PASSWORD('這裡輸入你的新密碼要用單引號') where user='root';
//例如,你使用123456作為新密碼,就這麼寫...set password=password('123456'
)... //會提示 Query OK, 2 rows affected (0.02sec) //Rows matched:3 Changed:2 Warnings: 0 //最後,更新許可權 mysql> flush privileges;

2.此時,重新啟動MySQL服務,然後重新開啟控制檯,就可以使用新密碼登陸了。
3.最後,記得把 my.ini 檔案中最後新增的那行配置skip-grant-tables給刪除了,刪除後,還要重啟服務。