在centos下安裝好了mysql,用root帳號(hào)連上mysql,然后創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),提示下圖錯(cuò)誤:

提示:ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'。網(wǎng)上找了一個(gè)比較流行的方法(見方法一),搞定了。今天又用這個(gè)試了試,卻搞不定,在網(wǎng)上找了半天,終于發(fā)現(xiàn)是因?yàn)閙ysql數(shù)據(jù)庫(kù)的user表里,存在用戶名為空的賬戶即匿名賬戶,導(dǎo)致登錄的時(shí)候是雖然用的是root,但實(shí)際是匿名登錄的,通過錯(cuò)誤提示里的''@'localhost'可以看出來,
于是解決辦法見方法二。
方法一:
****1.關(guān)閉mysql # service mysqld stop*
2.屏蔽權(quán)限* # mysqld_safe --skip-grant-table 屏幕出現(xiàn): Starting demo from .....
3.新開起一個(gè)終端輸入 # mysql -u root mysql mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;//記得要這句話,否則如果關(guān)閉先前的終端,又會(huì)出現(xiàn)原來的錯(cuò)誤
mysql> \q
方法二:
1.關(guān)閉mysql # service mysqld stop**
2.屏蔽權(quán)限** # mysqld_safe --skip-grant-table 屏幕出現(xiàn): Starting demo from .....**
3.新開起一個(gè)終端輸入** # mysql -u root mysql
mysql> delete from user where USER='';
mysql> FLUSH PRIVILEGES;//記得要這句話,否則如果關(guān)閉先前的終端,又會(huì)出現(xiàn)原來的錯(cuò)誤
mysql> \q