Por que a ferramenta de linha de comando MySQL ignora o parâmetro --port?

90

Isto é o que estou fazendo:

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

O comando funciona (conectando à porta 3306), não importa o que forneço no --portargumento. Eu tenho dois servidores mysql em execução em uma máquina e quero conectar ao segundo, fornecendo explicitamente seu número de porta. O que está acontecendo? Por que mysqlignorar esse parâmetro?

yegor256
fonte

Respostas:

156

Quando o localhostparâmetro é dado, o MySQL usa soquetes. Use em 127.0.0.1vez disso.

CUBO
fonte
14
É muito irritante que esse fato não seja mencionado na página de manual do mysql.
Janek
1
Além da resposta aceita aqui, um pouco mais de explicação pode ser encontrada neste relatório de erros do mysql e também no link para a página de manual . Como comentarista na página de relatórios de erros, também não entendo por que o cliente não lança pelo menos um aviso no caso de usar 'localhost' na cadeia de conexão.
Bukva-ziu
3
Você é um homem que salva vidas!
Touqeer Shafi
Estou usando o mysql há uma década, mas isso ainda não passou pelo meu caminho ...
pscheit