mysql:尝试使用远程IP连接到本地主机时,连接被拒绝

mysql:尝试使用远程IP连接到本地主机时,连接被拒绝,mysql,Mysql,当我尝试使用本地mysql数据库的远程ip地址连接到该数据库时,访问被拒绝。当我尝试从外部机器连接到同一个数据库时,它可以正常工作。当我使用localhost连接到本地数据库时,它也能正常工作。例如,如果数据库服务器具有ip 1.2.3.4,则我会得到以下结果: # From the db server mysql -u username -h localhost -p #works perfectly mysql -u username -h 127.0.0.1 -p #works perfe

当我尝试使用本地mysql数据库的远程ip地址连接到该数据库时,访问被拒绝。当我尝试从外部机器连接到同一个数据库时,它可以正常工作。当我使用localhost连接到本地数据库时,它也能正常工作。例如,如果数据库服务器具有ip 1.2.3.4,则我会得到以下结果:

# From the db server
mysql -u username -h localhost -p #works perfectly
mysql -u username -h 127.0.0.1 -p #works perfectly
mysql -u username -h 1.2.3.4 -p #Access denied

# From any other machine
mysql -u username -h 1.2.3.4 -p #works perfectly

我可以做什么来允许本地访问我的数据库使用其远程ip地址?数据库服务器的操作系统是Fedora 15,MySQL版本是5.5.23。

我自己找到了解决问题的方法,但我仍然不太明白为什么它不起作用:

我已在主机%和本地主机上授予该用户权限:

# Before
+-----------------+------------+
| Host            | User       |
+-----------------+------------+
| %               | username   |
| localhost       | username   |
+-----------------+------------+
通过这些设置,我得到了上面显示的结果。当我向主机上的那个用户授予特权时,它突然起作用了

# After
+-----------------+------------+
| Host            | User       |
+-----------------+------------+
| %               | username   |
| localhost       | username   |
| <myIpAddress>   | username   |
+-----------------+------------+
#之后
+-----------------+------------+
|主机|用户|
+-----------------+------------+
|%|用户名|
|localhost |用户名|
||用户名|
+-----------------+------------+

显然%适用于远程连接,但不适用于本地连接。

此特定问题可能由主机名解析引起

我已通过从my.cnf配置文件中删除此变量解决了我的特殊情况:

跳过名称解析


当然,您可以在my.cnf中添加一个磅号来标注变量,也可以在确保备份后将其删除。

尝试编辑/添加
bind address=0.0.0
[mysqld]
文件的
/etc/mysql/mysql.conf.d/mysqld.cnf部分,然后重新启动mysql服务。

您正在运行防火墙吗?防火墙设置是什么?网络设置中的“拒绝连接”提示。如果mysql拒绝访问,它会这样说:“错误1130(HY000):不允许主机'1.2.3.4'连接到此mysql服务器”@Justinᚅᚔᚈᚄᚒᚔ - 我正在运行ip表,但没有其他功能@Olaf-抱歉,我犯了一个错误:我收到了
错误1045(28000):访问被拒绝
,而不是连接被拒绝。