Не вдається підключитися до помилки 111 сервера MySQL [закрито]


152

Я встановив сервер mysql на Linux linux box = 192.168.1.100, але коли я намагаюся підключитися до цього IP, він завжди помилка (111). але використовувати localhost, і 127.0.0.1 добре.

пиво @ пиво-ноутбук # ifconfig | grep "inet addr"
          inet addr: 127.0.0.1 Маска: 255.0.0.0
          inet addr: 192.168.1.100 Bcast: 192.168.1.255 Маска: 255.255.255.0

пиво @ пиво-ноутбук # mysql -ubeer -pbeer -h192.168.1.100
ПОМИЛКА 2003 (HY000): не вдається підключитися до сервера MySQL на '192.168.1.100' (111)

пиво @ пиво-ноутбук # mysql -ubeer -pbeer -hlocalhost
Ласкаво просимо на монітор MySQL. Команди закінчуються на; або \ g.
Ваш ідентифікатор з'єднання MySQL становить 160
Версія сервера: 5.1.31-1ubuntu2 (Ubuntu)

Введіть "help;" або "\ h" для довідки. Введіть "\ c", щоб очистити буфер.

mysql> 

пиво @ пиво-ноутбук # mysql -ubeer -pbeer -h127.0.0.1
Ласкаво просимо на монітор MySQL. Команди закінчуються на; або \ g.
Ваш ідентифікатор з'єднання MySQL - 161
Версія сервера: 5.1.31-1ubuntu2 (Ubuntu)

Введіть "help;" або "\ h" для довідки. Введіть "\ c", щоб очистити буфер.

mysql> 

Підключіть з іншої машини це також помилка 111.

інший @ інший ноутбук # mysql -ubeer -pbeer -h192.168.1.100
ПОМИЛКА 2003 (HY000): не вдається підключитися до сервера MySQL на '192.168.1.100' (111)

Яка різниця між використанням localhost / 127.0.0.1 та 192.168.1.100 у цьому випадку. Я не знаю, як підключитися до цієї бази даних з іншої машини.

Допоможіть, будь ласка. Спасибі.

Відповіді:


263

Це, ймовірно, означає, що ваш сервер MySQL слухає лише інтерфейс localhost.

Якщо у вас є такі рядки:

bind-address = 127.0.0.1

У своєму my.cnfконфігураційному файлі слід прокоментувати їх (додати # на початку рядків) та перезапустити MySQL.

sudo service mysql restart

Звичайно, для цього ви повинні бути адміністратором сервера.


6
очевидно, у нього немає skip-networkingлінії ;-)
Майкл Крелін - хакер

11
як знати mysql my.cnf розташування: stackoverflow.com/questions/2482234/…
Кирило Жакрт

2
але що відбувається, коли ви МОЖЕТЕ підключитися до нього з робочої версії mysql? у мене така ж проблема.
Джордж Памфіліс

3
Я дотримувався того, що вказано у відповіді, але все-таки не міг змусити його працювати. Потім я зрозумів, що параметр "прив'язувати адресу" є у файлі "/etc/mysql/mysql.conf.d/mysqld.cnf". Прокоментував це там, і це спрацювало!
Ях’я

3
новіші версії ubuntu> = 16.04 можуть мати цей рядок у /etc/mysql/mysql.conf.d/myqld.cnf
dellasavia

38

111 означає, що з'єднання відмовлено , а це означає, що ваш mysqld слухає лише localhostінтерфейс.

Щоб змінити його, ви можете переглянути bind-addressзначення у mysqldрозділі вашого my.cnfфайлу.


Також варто перевірити, чи дійсний номер порту. Невідповідність :3306і :3307може привести до помилки 111, теж.
NXT

2
@NXT, я навіть не знаю, чи може mysql слухати різні порти на різних інтерфейсах, але це дуже малоймовірний сценарій (зважаючи на симптоми в оригінальній публікації), навіть якщо це можливо. Тоді можуть бути правила брандмауера тощо. Є багато способів цього досягти, але ймовірність відрізняється…
Майкл Крелін - хакер

Це не завжди означає це. У моїх my.cnfфайлах немає жодних рядків bind-addressабо skip-networkingрядків, але я отримую ту ж помилку. Не встановлено жодного брандмауера. Вибігали ідеї.
Делете

Що ж, 111 означає, що зв’язок відмовився :) І в цьому конкретному випадку лише локальний хост обумовлений іншими доказами. Якщо ви надасте більше деталей щодо вашої справи, я можу допомогти? Крім того, залежно від вашої системи на сьогодні, ви, ймовірно, маєте конфігурацію, розкидану по декількох файлах.
Майкл Крелін - хакер

10

Якщо всі попередні відповіді не давали жодного рішення, слід перевірити права користувача.

Якщо ви можете увійти в систему rootmysql, вам слід додати це:

CREATE USER 'root'@'192.168.1.100' IDENTIFIED BY  '***';
GRANT ALL PRIVILEGES ON * . * TO  'root'@'192.168.1.100' IDENTIFIED BY  '***' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

Потім спробуйте підключитися знову за допомогою mysql -ubeer -pbeer -h192.168.1.100. Це має працювати.


17
я не думаю, що помилка, пов’язана з привілеями користувачів, призведе до помилки 111.
ufk

1
Це фактично спрацювало, і я отримував 111 помилок теж.
Borjante

виглядає, що це краще рішення, ніж відкривати mysql для всієї мережі, коментуючи рядок 127.0.0.1. це повинно бути найкращим рішенням.
nyxee

7

Якщо ви працюєте з cPanel / WHM, переконайтеся, що IP-адреса дозволена в брандмауері. Вам також потрібно буде додати цей IP до віддаленого списку IP SQL в обліковому записі cPanel, до якого ви намагаєтесь підключитися.


1
Хороша «підказка», щоб побачити, чи викликає помилку брандмауер, полягає в тому, що для повернення помилки знадобиться досить багато часу. Якщо MySQL викликає проблеми, відповідь має бути майже миттєвою.
Похмурий ...

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