启用远程MySQL连接:ERROR 1045 (28000):用户访问被拒绝。

150

我正在使用运行在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]

我随后重新启动了机器,但问题仍然存在。

13个回答

0

我的情况非常简单。

如果您输入了错误的密码,可能会出现这个问题。不需要创建用户(用户已经存在),也不需要其他权限。基本上只需确保密码正确即可。因此,请务必确认密码正确无误。


0
新的 MySQL 配置文件位置为:
/etc/mysql/mysql.conf.d/mysqld.cnf

0

用户/主机组合可能是在没有密码的情况下创建的。

我认为,在为现有用户添加新主机时(使用 GUI 应用程序),现有密码也将用于新用户/主机组合。

我可以使用以下方式登录

mysql -u username -p PASSWORD

本地,但不是来自IP地址的

mysql -u --host=HOST -p PASSWORD

我实际上可以从IPADDRESS登录而不使用密码

mysql -u --host=HOST

设置密码允许访问:

set password for '<USER>'@'<IPADDRESS>' = '<PASSWORD>';

1
谢谢,我花了很多时间尝试远程连接到我的Mysql服务器,这行代码帮助了我很多。在设置用户密码时,我遇到了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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接