Я не могу получить доступ к mysql извне. Я думаю, что это mysql или брандмауэр или какие-то привилегии в mysql.
Я уже пробовал делать шаги, которые есть в Интернете. Я поставлю шаг процесса -за шагом -, чтобы проиллюстрировать, что я делаю, и послужить учебным пособием для других людей, у которых есть такая же проблема :
. я использую:
-ubuntu server 12.04
-mysql-server5.5
-there is NO hardware firewall just software one
1 -Сначала я установил mysql с:
sudo apt-get install mysql-server
2 -Я изменил пароль root на:
sudo /etc/init.d/mysql stop
sudo mysqld --skip-grant-tables &
mysql -u root mysql
UPDATE user SET Password=PASSWORD('MYPASSWORD') WHERE User='root'; FLUSH PRIVILEGES; exit;
3 -Даю ВСЕ ПРИВИЛЕГИИ на рут на любой ip:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
4 -После того, как я отредактировал my.cnf
sudo nano /etc/mysql/my.cnf
Я прокомментировал строки, как показано ниже:
#skip-external-locking
#bind-address = 127.0.0.1
5 -Я отредактировал iptables, чтобы разрешить MySql 3306:
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
теперь набираю netstat -ant:
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:10000 0.0.0.0:* LISTEN
tcp 0 0 66.123.173.170:53 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN
tcp 0 0 66.123.173.170:22 189.32.2.232:49167 ESTABLISHED
tcp 0 336 66.123.173.170:22 189.32.2.232:49654 ESTABLISHED
tcp6 0 0 :::110 :::* LISTEN
tcp6 0 0 :::143 :::* LISTEN
tcp6 0 0 :::8080 :::* LISTEN
tcp6 0 0 :::21 :::* LISTEN
tcp6 0 0 :::53 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 ::1:953 :::* LISTEN
tcp6 0 0 :::25 :::* LISTEN
tcp6 0 0 :::993 :::* LISTEN
tcp6 0 0 :::995 :::* LISTEN
tcp6 0 0 127.0.0.1:8005 :::* LISTEN
Смотрите, что порт 3306 открыт! Я прав?
6 -Я перезапустил mysql:
sudo service mysql start
Я набрал:
service mysql status
результат:
mysql start/running, process 20757
7 -Я пытался подключиться к серверу:
mysql -h 66.123.173.170 -u root -p
Я получил эту ошибку:
ERROR 2003 (HY000): Can't connect to MySQL server on '66.123.173.170' (111)
Когда я это сделаю:
mysql -h 127.0.0.1 -u root -p
Он работает с открытым терминалом MySQL>
8 -СОМНЕНИЕ :Вы видите что-то неправильное в этом процессе?
OBS :на шаге 4, я также пытался поставить адрес привязки на ставка -адрес = 0.0.0.0 но это не решило проблему.
9 -СОМНЕНИЕ :Если я отключу MySQL с помощью:service mysql stop
тогда могу ли я получить доступ к брандмауэру локально с помощью mysql -h 127.0.0.1 -u root -p ?
Я сделал это, и я мог подключиться, даже когда mysql остановлен/ожидает (это был статус, полученный после остановки и получения статуса MySQL ).