Я не могу установить удаленное соединение с MySQL. Со своего компьютера я могу подключиться по telnet к 3306 на существующем сервере, но когда я пробую то же самое с новым сервером, он зависает на несколько минут, а затем возвращается
# mysql -utest3 -h [server ip] -p
Enter password:
ERROR 2003 (HY000): Can't connect to MySQL server on '[server ip]' (110)
Вот некоторые выходные данные сервера.
# nmap -sT -O localhost -p 3306
...
PORT STATE SERVICE
3306/tcp closed mysql
...
# netstat -anp | grep mysql
tcp 0 0 [server ip]:3306 0.0.0.0:* LISTEN 6349/mysqld
unix 2 [ ACC ] STREAM LISTENING 12286 6349/mysqld /DATA/mysql/mysql.sock
# netstat -anp | grep 3306
tcp 0 0 [server ip]:3306 0.0.0.0:* LISTEN 6349/mysqld
unix 3 [ ] STREAM CONNECTED 3306 1411/audispd
# lsof -i TCP:3306
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mysqld 6349 mysql 10u IPv4 12285 0t0 TCP [domain]:mysql (LISTEN)
Я бегаю...
ОС CentOS версии 5.8 (Final) mysql 5.5.28 (Remi)
Примечание: внутренние подключения к mysql работают нормально.
Я отключил IPtables, в коробке нет другого брандмауэра, он запускает Apache на порту 80 и ssh без проблем.
Последовал этому руководству - http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html
Я привязал IP-адрес в my.cnf
user=mysql
bind-address = [sever ip]
port=3306
Я даже начал с удаления папки mysql в моем хранилище данных и запуска
mysql_install_db --datadir=/DATA/mysql --force
Затем воссоздал всех пользователей в соответствии с руководством ...
http://dev.mysql.com/doc/refman/5.5/en/adding-users.html
Я создал одного тестового пользователя
CREATE USER 'test'@'%' IDENTIFIED BY '[password]';
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Итак, все, что я вижу, это то, что порт на самом деле не открыт. Где еще мне посмотреть?
Спасибо
# nmap -sT -O localhost -p 3306
...
PORT STATE SERVICE
3306/tcp closed mysql
...
В приведенной выше команде вы закрываете порт, потому что ваш mysql работает на определенном IP-адресе, а не на localhost. Итак, когда вы запустите эту команду на сервере, она покажет, что порт закрыт. Так что в этом есть смысл. Если вы хотите, чтобы это работало, вам нужно заменить bind-ip значением 0.0.0.0.
Итак, не могли бы вы заменить localhost на server-ip и опубликовать вывод здесь.
Кроме того, я знаю, что вы отключили брандмауэр, но все же, будет здорово, если вы сможете помочь мне с помощью этих двух команд:
Кроме того, выполняли ли вы какие-либо оптимизации в mysql и изменяли ли значения для любых переменных. Если да, то опубликуйте то же самое.