我在 Win7 中运行 VirtualBox 4.2.16。我在 CentOS 6.4 中安装了 MySQL 服务器。从 Win7 到 CentOS 的 Telnet 操作正常。
mysql -u root -h 192.168.56.102 p
在 CentOS 中没问题。
这是我在用户表中的内容:
mysql> select user, host from user;
+------+----------------+
| user | host |
+------+----------------+
| mm | 127.0.0.1 |
| root | 127.0.0.1 |
| mm | 192.168.56.102 |
| root | 192.168.56.102 |
| mm | localhost |
| root | localhost |
+------+----------------+
6 rows in set (0.00 sec)
MySQL status:
mysql Ver 14.14 Distrib 5.6.13, for Linux (x86_64) using EditLine wrapper
Connection id: 14
Current database:
Current user: root@loc
SSL: Not in use
...
Connection: 192.168.56.102 via TCP/IP
/usr/my.cnf:
[mysqld]
log_bin
port = 3306
bind-address = 192.168.56.102
/etc/hosts:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.56.102 loc
尽管如此,当我尝试从 Win7/HeidiSQL 连接到 192.168.56.102 端口 3306 上的 root 时,我得到了
SQL 错误(1130)... 主机“192.168.56.1”不允许连接到此 MySQL 服务器。
CentOS 防火墙已关闭,但据我所知,这不是防火墙问题...有什么想法吗?
答案1
尝试通过给予 Access
特定的IP,
该命令如下:
# mysql -u root mysql
mysql> grant all on test.* to 'username'@'192.168.56.1';
您可以参考添加sql论坛的用户账户这里
答案2
我看到您说 centos 防火墙关闭了,但我发现我的问题是 centos 防火墙 (firewalld) [阻止了我的请求]。
关闭防火墙证明了这一点:
sudo systemctl stop firewalld
添加一条允许端口开放的规则似乎可以解决问题:
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
sudo firewall-cmd --reload