3 回答

TA貢獻1943條經(jīng)驗 獲得超7個贊
網(wǎng)站程序或MySQL管理軟件連接MySQL服務器時密碼錯誤,會出現(xiàn)“1045 - Access denied for user 'root'@'localhost'(using password:YES)”的錯誤提示,如下圖:
當確認已經(jīng)忘記MySQL密碼,則可以通過以下方案重置root用戶密碼。雙擊打開C:\Program Files\MySQL\MySQL Server 5.1\my.ini文件,如下圖:
點擊“記事本”軟件頂部的“編輯”,再選擇“查找”,在“查找內(nèi)容”處輸入[mysqld],并點擊“查找下一個”,它會自動轉到[mysqld]字段行。在下面增加一行skip-grant-tables并保存

TA貢獻1865條經(jīng)驗 獲得超7個贊
重置mysql root密碼方法
一、Windows環(huán)境的找回方法:
1、打開cmd命令窗口,先輸入命令:
net stop mysql 回車 #關閉mysql服務。
進入到D:\SOFT_PHP_PACKAGE\mysql\bin\ 目錄下,執(zhí)行mysqld --skip-grant-tables 啟動MySQL Server (如果報錯,執(zhí)行mysqld-nt --skip-grant-tables);
2、另外打開一個cmd窗口, 依次輸入以下命令,將root賬戶密碼重置為123456。(命令輸入部分用紅色標注)
mysql
mysql>use mysql;
mysql> update user set password=password("123456") where user="root";
mysql>flush privileges;
exit
3、關閉兩個命令窗口,此時還無法啟動mysql因為mysql進程還在運行中,打開任務管理器,找到mysqld開頭的進程,點結束進程;
4、輸入命令:net start mysql 啟動mysql,或者進服務啟動mysql,就可以用root賬戶和新密碼登陸管理了。
二、linux環(huán)境的找回方法:
1、ssh登陸到linux服務器,向mysqld server 發(fā)送kill命令關掉mysqld server(不是 kill -9),存放進程ID的文件通常在mysql的數(shù)據(jù)庫所在的目錄中。(命令輸入部分用紅色標注)
#killall -TERM mysqld
2、 使用`--skip-grant-tables' 參數(shù)來啟動 mysqld(/www/wdlinux/mysql/bin/為wdcp系統(tǒng)的mysql路徑,非此系統(tǒng)的,請變更mysql的路徑)。
#cd /www/wdlinux/mysql/bin/
#mysqld_safe --skip-grant-tables
3、 原有的ssh客戶端不要關閉(若該客戶端超時,可能導致重置密碼失敗,所以重置密碼過程建議在幾分鐘內(nèi)完成),新開一個ssh客戶端登陸,登陸后輸入mysql命令登陸到mysql:
>mysql
然后輸入以下命令重置密碼:
>use mysql
>update user set password=password("123456") where user="root";
>flush privileges;
4、輸入命令:
#killall -TERM mysqld
#service mysqld start
5、用新密碼登陸試試

TA貢獻1878條經(jīng)驗 獲得超4個贊
1、編輯MySQL配置文件:
windows環(huán)境中:%MySQL_installdir%\my.ini //MySQL安裝目錄下的my.ini配置文件。
linux環(huán)境中:/etc/my.cnf
在[MySQLd]配置段添加如下一行:skip-grant-tables
保存退出編輯。
2、然后重啟MySQL服務
windows環(huán)境中:
net stop MySQL
net start MySQL
linux環(huán)境中:
/etc/init.d/MySQLd restart
3、設置新的ROOT密碼
然后再在cmd命令行下執(zhí)行:
MySQL -uroot -p MySQL
要求輸入密碼時直接回車無需密碼即可進入數(shù)據(jù)庫了。
現(xiàn)在我們執(zhí)行如下語句把root密碼更新為 123456:
update user set password=PASSWORD("123456") where user='root'
quit 退出MySQL。
4、還原配置文件并重啟服務
然后修改MySQL配置文件把剛才添加的那一行(skip-grant-tables)刪除。
再次重起MySQL服務,即可
二.修改MySQL的用戶名和密碼:(未證實)
方法一:(適用于管理員或者有全局權限的用戶重設其它用戶的密碼)
進入命令行模式
mysql -u root mysql
mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='name'
mysql> FLUSH PRIVILEGES
mysql> QUIT
方法二:(應用同上,只是方法不同)
mysql -u root mysql
mysql> SET PASSWORD FOR name=PASSWORD('new password')
mysql> QUIT
最后必殺技:
mysqladmin -u root "old password" "new password"
注:以上name請用你的用戶名來替代,new password請輸入你想要設置的密碼。
添加回答
舉報