MySQL5 改密碼后不能登錄問題的解答
首先說明一下,下面描述僅限于Win系統 其它系統我沒試過,Mysql 自從4.1.1以后修改了用戶密碼的格式, 從16位增加到了41位, 采用了一種新的驗證方法,但4.1以前的客戶端協議不支持這種方法,所以造成了不能登臨的后果.即使密碼正確了不能正常登錄。
提示如下:
#1250 - Client does not support authentication protocol requested by server; consider upgrading MySQL client
在窗口中執行:
C:\mysql\bin>mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 5.0.0-alpha-nt
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> select password('aa');
+-------------------------------------------+
password('aa')
+-------------------------------------------+
*DEE59C300700AF9B586F9F2A702231C0AC373A13
+-------------------------------------------+
1 row in set (0.00 sec)
mysql>
從上可以看出password的結果返回了一個以'*'號開頭的41位字符串,而以前是16位的.
Mysql官方網站給出了二種解決方法
1,使用新的客戶端api,
2,強制服務器使用舊的密碼方案
我首先嘗試了第一種方法,從mysql5.0中拷貝libmysql.dll到php 的擴展目錄中,替代了php本身附帶的libmysql.dll, 但結果令人失望. Php提示裝入php_mysql.dll失敗:PHP Warning: PHP Startup: Unable to load dynamic library 'c:/php5/ext/php_mysql.dll' - 找不到指定的程序。后來發現新版的dll中缺少了mysql_drop_db() 這一函數 :( 只有等php或mysql出更新的dll了.
第一種方法行不通,只有試試第二種方法,mysql的官方FAQ中說,需要加上-old-password這一參數,我首先嘗試 在命令行下起動mysql,
c:\mysql\bin>mysqld-nt -old-password
在另一窗口中 運行
C:\mysql\bin>mysql -uroot
Welcome to the MySQL monitor. Commands end with ; or \g.
關鍵字:MySQL5、程序
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解