error 1044 (42000):access denied for user ''@'localhost' to database 'mysql' 解決方法


重新安裝mariaDB數據庫時,出現安裝權限問題,中止安裝發現居然能夠登陸mysql,但是登陸時可以不填密碼,操作數據庫時會報錯:ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'。我是遠程登錄數據庫的,網上找了一些方法,終於搞定了。
 
后來解決成功,發現是因為mariaDB數據庫的user表里,存在用戶名為空的賬戶即匿名賬戶,導致登錄的時候是雖然用的是root,但實際是匿名登錄的,通過錯誤提示里的''@'localhost'可以看出來。解決方法如下:
 
在my.cnf的[mysqld]字段下加入: 

 
[delphi] view plain copy
 
  1. skip-grant-tables  

重啟mysql服務,這時的mariaDB不需要密碼即可登錄數據庫
然后進入mariaDB
[sql] view plain copy
 
  1. mysql>use mysql;  
  2. mysql>delete from user where user='';   
  3. mysql>flush privileges;  

刪除掉匿名用戶,即可以root方式登陸數據庫。
運行之后最后去掉my.ini中的skip-grant-tables,重啟數據庫(systemctl restart mariadb.service)即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM