Як я можу визначити метод підключення, який використовується клієнтом MySQL?


10

Використовуючи клієнт MySQL (наприклад mysql), як я можу визначити, підключений він до сервера за допомогою файлу сокет Unix або за допомогою TCP / IP?

Відповіді:


13

Пошук транспорту

Спробуйте скористатися, netstat -ln | grep 'mysql'і ви зможете побачити, як це пов'язано з виходом. якщо у вас є доступ до оболонки

У Unix програми MySQL трактують ім'я хоста localhost спеціально таким чином, який, ймовірно, відрізняється від очікуваного у порівнянні з іншими мережевими програмами. Для підключення до localhost програми MySQL намагаються підключитися до локального сервера за допомогою файлу сокет Unix.

Це трапляється, навіть якщо задано номер --portабо -Pпараметр для вказування номера порту.

Якщо yould хтозна тип з'єднання з в інтерфейсі командного рядка MySQL, використовуйте «\» и команди (статус).

mysql> \s

Вихід матиме такий рядок, як один із наступних (на Unix).

Connection:             127.0.0.1 via TCP/IP

або

Connection:             Localhost via UNIX socket

Примушування до конкретного транспорту

Щоб переконатися, що клієнт встановлює TCP / IP-з'єднання з локальним сервером, використовуйте --hostабо -hвказуйте значення імені хоста 127.0.0.1 або IP-адресу або ім’я локального сервера. Ви також можете вказати протокол з'єднання прямо, навіть для localhost, скориставшись --protocol=TCPопцією. Наприклад:

shell> mysql --host=127.0.0.1
shell> mysql --protocol=TCP

--protocol={TCP|SOCKET|PIPE|MEMORY}Опція явно вказує протокол, який використовується для підключення до сервера. Це корисно, коли інші параметри з'єднання зазвичай спричиняють використання протоколу, відмінного від потрібного. Наприклад, підключення в Unix до localhost здійснюється за допомогою файлу сокета Unix за замовчуванням:

shell> mysql --host=localhost

Щоб змусити замість цього використовувати з'єднання TCP / IP, вкажіть --protocolпараметр:

shell> mysql --host=localhost --protocol=TCP

Типи протоколів:

  • TCP: підключення TCP / IP до локального або віддаленого сервера. Доступний на всіх платформах.
  • SOCKET: Підключення файлу сокета Unix до локального сервера. Доступно лише для Unix.
  • PIPE: підключення до локального або віддаленого сервера. Доступно лише для Windows.
  • ПАМ'ЯТЬ: з'єднання спільної пам'яті з локальним сервером. Доступно лише для Windows.

Підключення файлу сокет Unix швидше, ніж TCP / IP, але його можна використовувати лише під час підключення до сервера на тому ж комп'ютері.


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