熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Javascript >> 正文

關於 mysql5 改密碼後不能登錄問題的解答

2013-11-23 17:52:46  來源: Javascript 

  首先說明一下下面描述僅限於Win系統 其它系統我沒試過Mysql 自從以後修改了用戶密碼的格式位增加到了 采用了一種新的驗證方法以前的客戶端協議不支持這種方法所以造成了不能登臨的後果即使密碼正確了不能正常登錄提示如下:
  # 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 to server version: alphant
  
  Type help; or \h for help Type \c to clear the buffer
  
  mysql> select password(aa);
  ++
  | password(aa)              |
  ++
  | *DEECAFBFFACACA |
  ++
   row in set ( sec)
  
  mysql>
  從上可以看出password的結果返回了一個以*號開頭的位字符串而以前是位的
  
  Mysql官方網站給出了二種解決方法
  
  使用新的客戶端api
  強制服務器使用舊的密碼方案
  
  我首先嘗試了第一種方法從mysql中拷貝libmysqldll到php 的擴展目錄中替代了php本身附帶的libmysqldll 但結果令人失望 Php提示裝入php_mysqldll失敗:PHP Warning: PHP Startup: Unable to load dynamic library c:/php/ext/php_mysqldll 找不到指定的程序後來發現新版的dll中缺少了mysql_drop_db() 這一函數 :( 只有等php或mysql出更新的dll了
  
  第一種方法行不通只有試試第二種方法mysql的官方FAQ中說需要加上oldpassword這一參數我首先嘗試 在命令行下起動mysql
  c:\mysql\bin>mysqldnt oldpassword
  
  在另一窗口中 運行
  C:\mysql\bin>mysql uroot
  Welcome to the MySQL monitor Commands end with ; or \g
  Your MySQL connection id is to server version: alphant
  
  Type help; or \h for help Type \c to clear the buffer
  
  mysql> select password(mypassword);
  ++
  | password(mypassword) |
  ++
  | eebfbed    |
  ++
   row in set ( sec)
  
  mysql>
  
  可以看出password的結果又變成位的了可喜的變化
  
  我在c:\windows\myini (xp中如此中應在c:\wint\下)中的mysqld段中加入setvariable=oldpasswords
  
  例:
  [mysqld]
  basedir=C:/mysql
  setvariable=oldpasswords
  datadir=C:/mysql/data
  [WinMySQLadmin]
  Server=C:/mysql/bin/mysqldntexe
  user=root
  password=mypassword
  
  然後在服務管理器中起動mysql
  
  Very Good 一切正常
  
  後來我又發現只要在mysqluser表中把password的字段長度改成系統就自動切換到了oldpassword方式改成改回後 又自動換到了新的驗證方式
  在這裡提醒一下更改password方式後要重新設制一下密碼並刷新一下權限(或重起mysql)

From:http://tw.wingwit.com/Article/program/Java/Javascript/201311/25277.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.