Genoptaget løsning:
Jeg dræbte mysqld'en, der holdt 3306-porten og genstartede den.
Jeg tror, dette er en fejl eller noget relateret, tjek trin-for-trin, hvad jeg gjorde:
1- Oprettet et program til at oprette forbindelse på 3306
Først laver jeg et simpelt program i Java for at sikre, at der ikke var noget problem med min firewall. Programmet åbner bare en port på 3306 med TCP-forbindelse med 2 minutter kun for at teste, programmet:
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- Stoppede mysql-tjenesten
Før jeg kørte programmet, stoppede jeg mysql-tjenesten:
sudo service mysql stop
eller det kan gøres med:
/etc/init.d/mysql stop
3- Startede mit program med java PortMysqlTest
Mit program (PortMysqlTest) afgiver en undtagelse, der siger adressen/porten som allerede er i brug af mysqld!
Overraskelse? Så vidt jeg ved, med mysql-tjenesten stoppet, burde porten være fri. Har jeg ret? (Jeg er ikke sikker på, om nogen kan svare på dette...)
4- Jeg søgte efter applikationens PID, der brugte adressen/porten med:
sudo netstat -lpn | grep 3306
svaret:
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 6736/mysqld
5- Jeg slog processen ihjel med:
kill -9 6736
OBS, hvis du ikke ved, hvad kill do:6736 er den proces, der holdt porten, jeg fik dette nummer med trin 4, 6736/mysqld
6- Nu kører jeg mit program igen:
java PortMysqlTest og forbundet med telnet (telnet 66.123.173.170 3306) eksternt og det virkede !
Så problemet var ikke firewallen , fordi jeg kunne tilslutte eksternt til maskinen 66.123.173.170.
7- Startede mysql-tjenesten igen:
(Jeg ventede 2 minutter på, at mit program stoppede og frigør 3306-porten) og startede mysql-tjenesten igen for at teste med:
sudo service mysql start
eller
sudo /etc/init.d/mysql start
8- Jeg oprettede forbindelse eksternt med telnet:
telnet 66.123.173.170 3306
og virkede!!!
Efter at jeg prøvede at oprette forbindelse til mysql med:
mysql -h 66.123.173.170 -u root -p
og virkede!!!
Konklusion: Jeg tror, der var en fejl med min MySql-installation; eller noget, (jeg ved ikke, hvad der er), når du genstarter mysql, får mysql ikke konfigurationen af:
bind-address = 0.0.0.0
eller
bind-address = *
Jeg håber, at dette hjælper en anden.