今天在連接配接自己電腦上的mysql時,提示“Access denied for user ''@'localhost' to database”。
初步判斷是使用者不對,因為localhost前面都沒有使用者名,而我是以特定使用者登入的,是肯定有使用者名的。以前改過電腦的域,可能是這個原因所緻。
解決方法:
1)采用[1]中提供的重新初始化密碼:
/usr/bin/mysql_secure_installation
2)可以嘗試采用[2]中方法(我未試,方法1已解決問題)
另外,通過show grants;檢視授權,通過 select current_user();檢視目前使用者,通過select user,host,password from mysql.user; 檢視相關的使用者名和host。
參考
【1】 使用mysql的一個執行個體
<a href="http://www.cnblogs.com/mydomain/archive/2011/08/18/2144961.html">http://www.cnblogs.com/mydomain/archive/2011/08/18/2144961.html</a>
【2】 同類問題解決經驗
<a href="http://bbs.linuxpk.com/thread-22953-1-6.html">http://bbs.linuxpk.com/thread-22953-1-6.html</a>
① 關閉mysql:
# service mysqld stop
② 然後:
# mysqld_safe --skip-grant-tables
③ 啟動mysql:
# service mysqld start
④ mysql -u root
⑤ mysql> use mysql
⑥ mysql> UPDATE user SET Password=PASSWORD('xxx') WHERE user='root';
⑦ mysql> flush privileges;
⑧ mysql>\q