¿Por qué la herramienta de línea de comandos MySQL ignora el parámetro --port?

90

Esto es lo que estoy haciendo:

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

El comando funciona (conectando al puerto 3306) sin importar lo que proporcione en el --portargumento. Tengo dos servidores mysql ejecutándose en una máquina, y quiero conectarme a la segunda proporcionando explícitamente su número de puerto. ¿Que esta pasando? ¿Por qué mysqlignora este parámetro?

yegor256
fuente

Respuestas:

156

Cuando localhostse proporciona el parámetro, MySQL usa sockets. Usar en su 127.0.0.1lugar.

CUBO
fuente
14
Bastante irritante que este hecho no se mencione en la página de manual de mysql.
Janek
1
Además de la respuesta aceptada aquí, se puede encontrar un poco más de explicación en este informe de errores de mysql y también un enlace a la página de manual . Como uno de los comentaristas en la página de informe de errores, tampoco entiendo por qué el cliente al menos no lanza una advertencia en caso de usar 'localhost' en la cadena de conexión.
bukva-ziu
3
Eres un hombre salvavidas!
Touqeer Shafi
estoy usando MySQL desde hace una década, pero esto no cruzado mi camino, sin embargo ...
pscheit