2011-02-28 103 views
2

我需要得到一箇舊版本的MySQL客戶端(4.1)連接到一個更老的MySQL服務器(3.23)。MySQL錯誤1045(00000):訪問被拒絕 - 不同版本的MySQL

目標是對舊的Linux/MySQL 3.23數據庫執行Java/JDBC連接,以更新Lucene搜索(它也將在linuxdev2上運行)的文本信息。

的問題是,我不能從遠程Linux/MySQL 4.1中的客戶端連接到Linux/MySQL的3.23服務器。我無法從JDBC連接;我無法從 「MySQL的」 連接:

LOCAL (intranet): 
mysql -uSOMEUSER -pSOMEPASSWORD mysql => OK 

REMOTE (from linuxdev2): 
mysql -uSOMEUSER -pSOMEPASSWORD -hintranet mysql => FAILS: 
ERROR 1045 (00000): Access denied for user: '[email protected]' (Using password: YES) 

PERMISSIONS (on intranet): 
mysql> select User,Host,Password from user order by User; 
+-----------+-----------------------------+------------------+ 
| User  | Host      | Password   | 
+-----------+-----------------------------+------------------+ 
| SOMEUSER | %       | 233780be35015f2c | 
| SOMEUSER | localhost     | 233780be35015f2c | 
| ... 

這些主機:

Component  Intranet:    Linuxdev2: 
---------  --------     --------- 
Java   N/A      Sun Java 1.5.0_03 
JDBC   N/A      mysql-connector-java-3.1.6-3 
MySQl Server mysql-server-3.23.22-6 mysql-4.1.10a-3.8 
MySql Client mysql-3.23.22-6   mysql-client-4.1.10a-3 

我花了一個飄渺的跟蹤和驗證從linuxdev2到Intranet上的TCP/IP連接正常:

a) They connect on port 3306 
b) Linuxdev2 does a "Login request Caps" 
c) Intranet replies with "Response Error Code: 415" (access denied) 

回答

0

MySQL的密碼算法在v4.1中改變 - 相同的password()函數,但不同的哈希算法,因此使用password() -create將v4.1 +客戶端連接到較舊的v3.x服務器ated密碼將無法正常工作。

Ref:http://dev.mysql.com/doc/refman/5.1/en/password-hashing.html

+0

林不知道它是正確的。引述您的鏈接:* A 4.1或更高版本的客戶端可以連接到4.1以前的服務器,因爲客戶端理解新舊和密碼哈希機制*。 – Capsule 2011-02-28 22:17:58

相關問題