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?

Antworten:


155

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


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.