Zdalne połączenie MySQL [nie tak jak zwykle]
Nie dostaję dostępu do mysql na zewnątrz. Myślę, że to mysql lub firewall lub jakieś przywileje w mysql.
Próbowałem już wykonywać kroki w Internecie. Przedstawię proces krok po kroku, aby zilustrować to, co robię i służyć jako samouczek dla innych osób, które mają ten sam problem:
Używam:
-ubuntu server 12.04
-mysql-server5.5
-there is NO hardware firewall just software one
1- Najpierw zainstalowałem mysql z:
sudo apt-get install mysql-server
2- Zmieniłem hasło roota przez:
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- Daję WSZYSTKIE PRZYWILEJE do rootowania do dowolnego IP:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
4- Po tym, jak edytowałem my.cnf
sudo nano /etc/mysql/my.cnf
Skomentowałem linie, jak poniżej:
#skip-external-locking
#bind-address = 127.0.0.1
5- Zmontowałem iptables, aby umożliwić MySql 3306:
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
teraz wpisuję 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
Zobacz, że port 3306 jest otwarty! Czy mam rację?
6- Ponownie uruchomiłem mysql:
sudo service mysql start
Wpisałem:
service mysql status
wynik:
mysql start/running, process 20757
7- Próbowałem połączyć się z serwerem:
mysql -h 66.123.173.170 -u root -p
Dostałem ten błąd:
BŁĄD 2003 (HY000): Nie można połączyć się z serwerem MySQL w dniu '66 .123.173.170 '(111)
Kiedy robię:
mysql -h 127.0.0.1 -u root -p
Działa otwarty terminal MySQL>
8- WĄTPLIWOŚĆ: Czy widzisz coś złego w tym procesie?
OBS: w kroku 4 próbowałem również umieścić adres powiązania na adres-bid = 0.0.0.0, ale to nie rozwiązało problemu.
9- WĄTPLIWOŚĆ: Jeśli wyłączę MySQL za pomocą:service mysql stop
czy mogę uzyskać dostęp do zapory lokalnie za pomocą mysql -h 127.0.0.1 -u root -p?
Zrobiłem to i mogłem połączyć się nawet z mysql stop / waiting (był to status podany po zatrzymaniu i odzyskaniu statusu MySQL).