我正在使用运行在Windows XP上的MySQL 5.1.31。
从本地MySQL服务器(192.168.233.142)上,我可以像下面这样使用root连接:
>mysql --host=192.168.233.142 --user=root --password=redacted
从一个远程机器(192.168.233.163)上,我可以看到mysql端口是开放的:
# telnet 192.168.233.142 3306
Trying 192.168.233.142...
Connected to 192.168.233.142 (192.168.233.142).
但是当我尝试从远程机器连接到 mysql 时,我收到以下错误:
# mysql --host=192.168.233.142 --user=root --password=redacted
ERROR 1045 (28000): Access denied for user 'root'@'192.168.233.163' (using password: YES)
我在mysql.user表中只有2个记录:
Host User Password
--------------------------------------
localhost root *blahblahblah
% root [same as above]
我需要做什么才能启用远程访问?
编辑
如Paulo所建议的,我尝试将mysql.user中%的条目替换为特定IP的条目,因此我的用户表现在看起来像这样:
Host User Password
------------------------------------------
localhost root *blahblahblah
192.168.233.163 root [same as above]
我随后重新启动了机器,但问题仍然存在。
ERROR 1372 (HY000): Password hash should be a 41-digit hexadecimal number
错误,这导致我找到了这篇文章:https://knowmysql.blogspot.com/2013/09/mysql-grant-password-error-error-1372.html 。按照那些步骤,我终于能够连接到服务器了。 - Sophie