Не удается подключиться к серверу MySQL ошибка 111 [закрыто]

Вопрос или проблема

Я установил сервер MySQL на Linux с IP = 192.168.1.100, но когда я пытаюсь подключиться к этому IP, всегда ошибка (111). Но использование localhost и 127.0.0.1 работает.

beer@beer-laptop# ifconfig | grep "inet addr"
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet addr:192.168.1.100  Bcast:192.168.1.255  Mask:255.255.255.0

beer@beer-laptop# mysql -ubeer -pbeer -h192.168.1.100
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.100' (111)

beer@beer-laptop# mysql -ubeer -pbeer -hlocalhost
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 160
Server version: 5.1.31-1ubuntu2 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> 

beer@beer-laptop# mysql -ubeer -pbeer -h127.0.0.1
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 161
Server version: 5.1.31-1ubuntu2 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> 

    

Подключение с другого компьютера также дает ошибку 111.

another@another-laptop# mysql -ubeer -pbeer -h192.168.1.100
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.100' (111)
    

В чем разница между использованием localhost/127.0.0.1 и 192.168.1.100 в этом случае?
Я не знаю, как подключиться к этой базе данных с другого компьютера.

Помогите, пожалуйста.
Спасибо.

Это, вероятно, означает, что ваш сервер MySQL слушает только интерфейс localhost.

Если у вас есть строки такие как:

bind-address = 127.0.0.1
    

В вашем my.cnf конфигурационном файле, вам следует закомментировать их (добавьте # в начале строк) и перезапустить MySQL.

sudo service mysql restart
    

Конечно, чтобы сделать это, вы должны быть администратором сервера.

111 означает соединение отклонено, что, в свою очередь, означает, что ваш mysqld слушает только интерфейс localhost.

Чтобы изменить это, вам нужно посмотреть значение bind-address в разделе mysqld вашего файла my.cnf.

Если все предыдущие ответы не дали решения,
вам следует проверить привилегии вашего пользователя.

Если вы могли войти как root в MySQL,
тогда вам нужно добавить:

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. Это должно сработать.

Если вы используете cPanel/WHM, убедитесь, что IP-адрес добавлен в белый список в файрволе. Вам также нужно добавить этот IP-адрес в список удаленных SQL IP в учетной записи cPanel, к которой вы пытаетесь подключиться.

Ответ или решение

Ошибка подключения к серверу MySQL с номером 111 указывает на то, что не удается установить соединение с сервером. В вашем случае, вы можете подключаться к серверу MySQL через localhost и 127.0.0.1, но не через IP-адрес 192.168.1.100. Это говорит о том, что сервер настроен на прослушивание только локальных интерфейсов.

Основные причины ошибки и решения

  1. Настройка bind-address в конфигурации MySQL:
    В файле конфигурации my.cnf (обычно находится в /etc/mysql/my.cnf или /etc/my.cnf) может быть задан параметр bind-address, ограничивающий доступ. Чтобы сервер MySQL мог принимать подключения с других IP, вам необходимо изменить или прокомментировать этот параметр. Найдите строку, содержащую:

    bind-address = 127.0.0.1

    и замените её на:

    # bind-address = 127.0.0.1

    или установите её значение на 0.0.0.0 для прослушивания всех интерфейсов:

    bind-address = 0.0.0.0

    После изменения сохраните файл и перезапустите MySQL с помощью команды:

    sudo service mysql restart
  2. Проверка прав пользователя:
    Убедитесь, что пользователю, с которым вы пытаетесь подключиться (например, beer), даны права на доступ с указанного IP-адреса. Заходите в MySQL под учетной записью, которая имеет права на создание пользователей, и выполните следующие команды:

    CREATE USER 'beer'@'192.168.1.%' IDENTIFIED BY 'your_password';  -- замените 'your_password' на ваш пароль
    GRANT ALL PRIVILEGES ON *.* TO 'beer'@'192.168.1.%' WITH GRANT OPTION;
    FLUSH PRIVILEGES;

    Это создаст пользователя beer, которому разрешается подключаться с любого устройства в сети 192.168.1.*, и даст ему все необходимые права.

  3. Проверка брандмауэра:
    Если вы используете брандмауэр (например, UFW на Ubuntu), убедитесь, что порт MySQL (по умолчанию 3306) открыт. Выполните команду:

    sudo ufw allow 3306

    Убедитесь, что правил брандмауэра достаточно для получения входящего трафика на этот порт.

  4. Проверка состояния сервера:
    Убедитесь, что сервер MySQL работает и слушает на правильных интерфейсах. Выполните следующую команду:

    sudo netstat -tuln | grep mysql

    Вы должны увидеть строчку, где указан порт 3306 и адрес, на котором сервер прослушивает подключения (например, 0.0.0.0).

Заключение

Если после выполнения всех вышеуказанных шагов проблема все еще не решена, необходимо проверить логи MySQL для получения более детальной информации об ошибках подключения. Логи можно найти обычно по пути /var/log/mysql/error.log. Они могут содержать подсказки, указания на неправильные настройки или конфликты.

Следуя этим рекомендациям, вы сможете устранить проблему с ошибкой 111 при подключении к серверу MySQL и обеспечить стабильный доступ к базе данных как с вашего локального компьютера, так и с других устройств в вашей сети.

Оцените материал
Добавить комментарий

Капча загружается...