MySQL5.6.12 ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'
阿新 • • 發佈:2019-02-04
問題描述:
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
給刪除了,刪除後,還要重啟服務。