Възобновено решение:
Убих mysqld, който държеше порта 3306 и го рестартирах.
Мисля, че това е грешка или нещо свързано, проверете стъпка по стъпка какво направих:
1- Създадена програма за свързване на 3306
Първо създавам проста програма на Java, за да се уверя, че няма проблем с моята защитна стена. Програмата просто отваря порт на 3306 с TCP връзка с 2 минути само за тестване, програмата:
import java.io.IOException;
import java.net.ServerSocket;
public class PortMysqlTest {
public static void main(String[] args) {
int port = 3306;
ServerSocket ss = null;
try
{
ss = new ServerSocket(port);
ss.setReuseAddress(true);
}
catch (IOException e)
{
System.out.println(e.getMessage());
}
long futureTime = System.currentTimeMillis() + 1000 * 60 * 2;
while (System.currentTimeMillis() < futureTime)
{
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
if (ss != null)
{
try
{
ss.close();
}
catch (IOException e)
{
System.out.println(e.getMessage());
}
}
}
2- Спира услугата mysql
Преди да изпълня програмата, спрях услугата mysql:
sudo service mysql stop
или може да се направи с:
/etc/init.d/mysql stop
3- Стартирах моята програма с java PortMysqlTest
Моята програма (PortMysqlTest) хвърля изключение, което казва, че адресът/портът вече се използва от mysqld!
Изненада? Доколкото знам портът със спряна услуга mysql трябва да е безплатен. Прав ли съм? (Не съм сигурен дали някой може да отговори на това...)
4- Потърсих PID на приложението, което използва адреса/порта с:
sudo netstat -lpn | grep 3306
отговорът:
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 6736/mysqld
5- Убих процеса с:
kill -9 6736
OBS, ако не знаете какво прави kill:6736 е процесът, който задържа порта, получих този номер със стъпка 4, 6736/mysqld
6- Сега стартирам програмата си отново:
java PortMysqlTest и свързан с telnet (telnet 66.123.173.170 3306) външен иработи !
Така че проблемът не беше в защитната стена , защото можех да се свържа външно към машината 66.123.173.170.
7- Стартира отново услугата mysql:
(Изчаках 2 минути моята програма да спре и освободи порта 3306) и стартирах отново услугата mysql, за да тествам, с:
sudo service mysql start
или
sudo /etc/init.d/mysql start
8- Свързах се външно с telnet:
telnet 66.123.173.170 3306
и работи!!!
След като се опитах да се свържа с mysql с:
mysql -h 66.123.173.170 -u root -p
и работи!!!
Заключение: Мисля, че имаше грешка с моята инсталация на MySql; или нещо подобно (не знам какво е), при рестартиране на mysql mysql не получава конфигурацията на:
bind-address = 0.0.0.0
или
bind-address = *
Надявам се това да помогне на някой друг.