Warum ignoriert das MySQL-Befehlszeilentool den Parameter --port?

89

Das mache ich:

mysql --host=localhost --port=9999 mysql -u root -p --execute="show tables;"

Der Befehl funktioniert (Verbindung zu Port 3306), unabhängig davon, was ich als --portArgument gebe. Ich habe zwei MySQL-Server auf einem Computer und möchte eine Verbindung zum zweiten herstellen, indem ich dessen Portnummer explizit angabe. Was ist los? Warum mysqlignoriert dieser Parameter?

yegor256
quelle

Antworten:

155

Wenn ein localhostParameter angegeben wird, verwendet MySQL Sockets. Verwenden Sie 127.0.0.1stattdessen.

NABE
quelle
14
Es ist sehr ärgerlich, dass diese Tatsache auf der mysql-Manpage nicht erwähnt wird.
Janek
1
Neben der hier akzeptierten Antwort gibt es in diesem mysql-Fehlerbericht eine etwas ausführlichere Erklärung sowie einen Link zur Manpage . Als einer der Kommentatoren auf der Bugreport-Seite verstehe ich auch nicht, warum der Client im Falle der Verwendung von 'localhost' in der Verbindungszeichenfolge nicht mindestens eine Warnung auslöst.
Bukva-Ziu
2
Du bist ein Lebensretter!
Touqeer Shafi
Ich benutze Mysql jetzt seit einem Jahrzehnt, aber dies hat mir noch nicht den Weg gekreuzt ...
pscheit