重新安裝mariaDB數據庫時,出現安裝權限問題,中止安裝發現居然能夠登陸mysql,但是登陸時可以不填密碼,操作數據庫時會報錯:ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'。我是遠程登錄數據庫的,網上找了一些方法,終於搞定了。
后來解決成功,發現是因為mariaDB數據庫的user表里,存在用戶名為空的賬戶即匿名賬戶,導致登錄的時候是雖然用的是root,但實際是匿名登錄的,通過錯誤提示里的''@'localhost'可以看出來。解決方法如下:
在my.cnf的[mysqld]字段下加入:
- skip-grant-tables
重啟mysql服務,這時的mariaDB不需要密碼即可登錄數據庫
然后進入mariaDB
- mysql>use mysql;
- mysql>delete from user where user='';
- mysql>flush privileges;
刪除掉匿名用戶,即可以root方式登陸數據庫。
運行之后最后去掉my.ini中的skip-grant-tables,重啟數據庫(systemctl restart mariadb.service)即可。