当我尝试使用它的远程ip-address连接到本地mysql数据库时,我得到访问被拒绝。当我尝试从外部计算机连接到同一个数据库时,它没有任何问题。当我使用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-address允许本地访问我的数据库?数据库服务器的操作系统是Fedora 15,MySQL版本是5.5.23。
答案 0 :(得分:1)
我自己找到了问题的解决方案,但我仍然不太明白为什么它不起作用:
我在主机%和localhost上授予该用户权限:
# Before
+-----------------+------------+
| Host | User |
+-----------------+------------+
| % | username |
| localhost | username |
+-----------------+------------+
通过这些设置,我得到了上面显示的结果。当我在主机上授予该用户权限时,它突然发挥作用。
# After
+-----------------+------------+
| Host | User |
+-----------------+------------+
| % | username |
| localhost | username |
| <myIpAddress> | username |
+-----------------+------------+
显然%可用于远程连接,但不适用于本地连接。
答案 1 :(得分:1)
尝试将=> App Service=> Your site name => Files
编辑/添加到bind-address = 0.0.0.0
文件的[mysqld]
部分,然后重新启动 MySQL Service 。
答案 2 :(得分:0)
此特定问题可能是由主机名解析引起的。
我已经在我的特定情况下通过从my.cnf配置文件中删除此变量来解决它:
<强>跳过名称解析强>
要么通过放置井号来标记变量#,要么在确保备份之后将其从my.cnf中删除,当然。