我在同一个子网上有两台服务器。
- 192.168.100.1 (mysql)
- 192.168.100.2 (php)
MySQL 似乎在它的盒子上运行良好,但我似乎无法连接到它。这些都是 ubuntu 盒子,iptables 和 ufw 没有运行。以下命令均来自 MySQL 机器本身。这些都不适用于.100.2
(php)框中。
我的.cnf
#bind-address = 127.0.0.1
bind-address = 192.168.100.1
netstat 说这是真的:
[email protected] /etc/mysql $ netstat -plutn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 8583/sshd
tcp 0 0 192.168.100.1:3306 0.0.0.0:* LISTEN 30654/mysqld
tcp 0 0 0.0.0.0:2828 0.0.0.0:* LISTEN 29946/monit
tcp 0 0 0.0.0.0:1167 0.0.0.0:* LISTEN 23175/cdp
tcp6 0 0 :::22 :::* LISTEN 8583/sshd
telnet 说不错
[email protected] /etc/mysql $ telnet 192.168.100.1 3306
Trying 192.168.100.1...
Connected to 192.168.100.1.
Escape character is '^]'.
[
5.5.40-0ubuntu0.12.04.1&KM~Se$!u??L\hw=gp{<Uvrmysql_native_password
!#08S01Got packets out of orderConnection closed by foreign host.
mysql客户端说很好:
[email protected] /etc/mysql $ mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
当我尝试连接时.100.2
,在连接超时之前我什么也得不到:
[email protected] /etc/php5/fpm $ mysql -uroot -p -h 192.168.100.1 --connect-timeout 4
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.100.1' (4)
我可以ping
.100.1
从.100.2
包装盒中获得亚毫秒响应时间。
这是 MySQL 授权设置:
mysql> SELECT user,host from mysql.user;
+------------------+--------------+
| user | host |
+------------------+--------------+
| root | 127.0.0.1 |
| root | 192.168.1.% |
| root | 192.168.100.%|
| root | 192.168.200.%|
| root | ::1 |
| debian-sys-maint | localhost |
| example | localhost |
| o3backup | localhost |
| root | localhost |
| root | voice-mysql |
+------------------+--------------+
10 rows in set (0.00 sec)
我为所有地方添加了新的赠款,但问题仍然存在。
mysql> show grants for 'root'@'%';
+--------------------------------------------------------------------------------------------------------------+
| Grants for root@% |
+--------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '...' |
+--------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
更新
原来系统被我不知道的系统文件更改以某种方式锁定。显然,它阻止了某些非标准的网络操作。老实说,给我这个盒子的人忘记了这一切,这真的令人沮丧。老实说,我不知道他们对它做了什么,甚至他们也不记得了。尽管如此,这里列出的答案是针对普通人的最彻底的故障排除指南。应该是这些问题之一。
从您的 php 服务器连接到您的 mysql 服务器时,您似乎收到了
Enter password:
提示,但之后就没有了。如果是这样,那么用户的 mysql 用户帐户设置root
可能会拒绝连接。查看您的root
mysql 用户帐户并确保该Host
字段设置为允许连接。来自(MySQL)拒绝访问错误的原因:
我怀疑连接时表格的排序方式会导致问题。您可能需要查看访问控制,第 1 阶段:连接验证
在http://dev.mysql.com/doc/refman/5.0/en/access-denied.html阅读错误 2003 的详细手册