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.