再次登陸mysql如提示 :ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'
這個(gè)錯(cuò)誤是因?yàn)閙ysql數(shù)據(jù)庫的user表里,存在用戶名為空的賬戶即匿名賬戶,實(shí)際上是匿名登錄的,通過錯(cuò)誤提示里的''@'localhost'可以看出來,雖然登錄時(shí)使用命令mysql -u root -p ,指定了用戶是root,但是mysql默認(rèn)登錄空賬戶。是為了保證數(shù)據(jù)庫安全拒絕所有用戶操作。
解決方案:
1、關(guān)閉mysql
systemctl stop mysql
#若關(guān)閉不了,顯示找不到服務(wù),可以直接殺死進(jìn)程的方式
ps -a | grep mysql
kil -9 進(jìn)場(chǎng)號(hào)
2、修改配置文件 my.cnf,在配置文件 [mysqld] 下添加 skip-grant-tables,重啟MySQL服務(wù)即可免密碼登錄
./bin/mysqld_safe --defaults-file=/home/disk1/work/mysql/my.cnf &
3、登陸mysql,不需要輸密碼,直接回車
mysql -u root -p
4、進(jìn)入mysql,可以通過如下命令查看所有賬戶
select host,user,password from user;
可以看到有些user下是空白的,這些就是空用戶,接下來執(zhí)行以下命令:
delete from user where USER=''; //刪除空密碼 FLUSH PRIVILEGES;//記得要這句話,否則如果關(guān)閉先前的終端,又會(huì)出現(xiàn)原來的錯(cuò)誤
此時(shí)再執(zhí)行查看命令可以看到空用戶已經(jīng)被刪除了,此時(shí)推出mysql文章來源:http://www.zghlxwxcb.cn/news/detail-601937.html
5、修改my.cnf再次重啟mysql即可正常登陸了。文章來源地址http://www.zghlxwxcb.cn/news/detail-601937.html
到了這里,關(guān)于登陸mysql提示 :ERROR 1044 (42000): Access denied for user ‘‘@‘localhost‘ to database ‘mysql‘的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!