2011-02-28 183 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

相关问题