У меня есть два сервера на той же подсети.
MySQL, кажется, хорошо работает на, он - поле, но я, может казаться, не соединяюсь с ним. Это и поля человечности и iptables, и ufw не работают. Следующие команды - все от самого поля MySQL. Ни один из них не работает от .100.2
(php) поле.
my.cnf
#bind-address = 127.0.0.1
bind-address = 192.168.100.1
netstat говорит, что это верно:
root@192.168.100.1 /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 говорится, что это хорошо
root@192.168.100.1 /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 говорит, что это хорошо:
root@192.168.100.1 /etc/mysql $ mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Когда я пытаюсь соединиться от .100.2
Я ничего не возвращаю от соединения до него тайм-ауты:
root@192.168.100.2 /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
поле, хотя с sub временем отклика мс.
Вот настройки MySQL Grant:
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)
Оказывается, что система была так или иначе вниз заблокирована изменениями, внесенными в системные файлы, о которых я не знал. По-видимому, это блокировало определенные сетевые операции, которые не являются стандартными. Это честно печально, что те же люди, которые дали мне это поле, забыли все об этом. Я честно понятия не имею, что они сделали к нему, и даже они не могут помнить. Тем не менее, ответы, перечисленные здесь, являются самым полным руководством по поиску и устранению неисправностей для нормальных людей все же. Это должна была быть одна из этих проблем.
Похоже, что при подключении к mysql-серверу с вашего php-сервера вы получаете сообщение Введите пароль:
, но ничего после этого. Если это так, то настройки учетной записи пользователя mysql для пользователя root
, вероятно, запрещают соединение. Взгляните на вашу учетную запись пользователя mysql root
и убедитесь, что в поле Host
установлено значение, разрешающее соединение.
Из (MySQL) Причины ошибок, связанных с доступом:
Если вы не знаете IP-адрес или имя хоста машины, с которой вы соединяетесь, вы должны поместить строку с '%' в качестве значения столбца Host в таблице пользователей.
После попытки соединения с клиентской машиной, используйте запрос SELECT USER(), чтобы увидеть, как вы на самом деле соединились. Затем измените '%' в строке таблицы пользователей на фактическое имя хоста, которое отображается в журнале. В противном случае, ваша система останется незащищенной, так как она разрешает соединения с любого хоста для данного имени пользователя.
Я подозреваю, что способ сортировки таблиц при подключении вызывает проблемы. Возможно, вы захотите просмотреть Контроль доступа, этап 1: Проверка соединения
Ознакомьтесь с руководством по устранению ошибок 2003 года по адресу http://dev.mysql.com/doc/refman/5.0/en/access-denied.html