Чому інструмент командного рядка MySQL ігнорує параметр --port?


89

Це те, що я роблю:

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

Команда працює (підключається до порту 3306) незалежно від того, що я надаю в --portаргументі. У мене є два сервери mysql, які працюють на одній машині, і хочу підключитися до другого, чітко вказавши номер свого порту. Що відбувається? Чому mysqlцей параметр ігнорується?

Відповіді:


155

Коли localhostпараметр заданий, MySQL використовує сокети. Використовуйте 127.0.0.1замість цього.


14
Досить неприємно, що цей факт не згадується на сторінці "mysql man".
Янек

1
Окрім прийнятої відповіді тут, трохи більше пояснень можна знайти в цьому mysql bugreport, а також посилання на сторінку man . Як один із коментаторів на сторінці bugreport, я також не розумію, чому клієнт принаймні не видає попередження у випадку використання "localhost" у рядку з'єднання.
bukva-ziu

2
Ти людина, що рятує життя!
Touqeer Shafi

Я використовую mysql вже десятиліття, але це мені не перейшло, але все ж ...
P.Scheit
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.