1. 程式人生 > >mysql Access denied for user [email prot

mysql Access denied for user [email prot

今天做一個遊戲,伺服器呼叫mysql,查詢使用者名稱密碼,結果怎麼也登入不上mysql,在網上找到一個網友的解決方法,按照他的方式一步一步解決了。


問題重現(以下討論範圍僅限Windows環境):

  
C:\Users\Administrator> mysql -u root -p
Enter password:  
ERROR 1045 (28000): Access denied for user 
'root'@'localhost' (using password: YES)

 

解決方法:

編輯mysql配置檔案my.ini(在mysql的安裝目錄下,我的在D:\Program Files\MySQL\MySQL Server 5.0\my.ini),在[mysqld]這個條目下加入 skip-grant-tables 儲存退出後重啟mysql

1.點選“開始”->“執行”(快捷鍵Win+R)。

2.停止:輸入 net stop mysql

3.啟動:輸入 net start mysql  

這時候在cmd裡面輸入mysql -u root -p就可以不用密碼登入了,出現 password:的時候直接回車可以進入,不會出現ERROR 1045 (28000),但很多操作都會受限制,因為我們不能grant(沒有許可權)。

繼續按下面的流程走:

1.進入mysql資料庫:
mysql> use mysql; 
Database changed

2.給root使用者設定新密碼:  
mysql> update user set password=password("新密碼") where user="root"; 
Query OK, 1 rows affected (0.01 sec) 
Rows matched: 1 Changed: 1 Warnings: 0

3.重新整理資料庫
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)  

4.退出mysql:
mysql> quit; 
Bye

改好之後,再修改一下my.ini這個檔案,把我們剛才加入的 "skip-grant-tables"這行刪除,儲存退出再重啟mysql就可以了。

 附帶連結:http://blog.csdn.net/u012730299/article/details/51840416