2009-09-14 5 views
111

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

 
[email protected]# 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 

[email protected]# mysql -ubeer -pbeer -h192.168.1.100 
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.100' (111) 

[email protected]# 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> 

[email protected]# 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> 

Connect с другой машины, также ошибка 111.

 
[email protected]# 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 в этом случае. Я не знаю, как подключиться к этой базе данных с другой машины.

Помогите пожалуйста. Thank.

ответ

213

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

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

skip-networking 
bind-address = 127.0.0.1 

В вашем my.cnf configuration file, вы должны комментировать их (добавить # в начале строки) и перезапустить MySQL.

sudo service mysql restart 

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

+6

, очевидно, у него нет строки 'skip-networking' ;-) –

+6

как узнать mysql my.cnf местоположение: http://stackoverflow.com/questions/2482234/how-to-know-mysql-my- cnf-location –

+0

, но что происходит, когда вы МОЖЕТЕ подключиться к нему с помощью workbench mysql? У меня такая же проблема. –

32

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

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

+0

Также стоит проверить, действительно ли номер порта. Несовпадение ': 3306' и': 3307' также может привести к ошибке 111. – NXT

+0

@NXT, я даже не знаю, может ли mysql прослушивать разные порты на разных интерфейсах, но это очень маловероятный сценарий (учитывая симптомы в исходном сообщении), даже если это возможно. Тогда могут быть правила брандмауэра и т. Д. Существует много способов добиться этого, но вероятность отличается ... –

+0

Не всегда это значит. Мои файлы 'my.cnf' не имеют строк' bind-address' или 'skip-networking', и все же я получаю ту же ошибку. Также не установлен брандмауэр. Из идей. – Deleet

7

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

Если бы вы могли войти как 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. Он должен работать.

+14

Я не думаю, что ошибка, связанная с правами пользователя, даст ошибку 111. – ufk

+1

Это действительно сработало, и я тоже получал ошибку 111. – Borjante

+0

похоже, что это лучшее решение, чем открытие mysql для всей сети, комментируя строку 127.0.0.1. это должно быть наилучшим решением. – nyxee

6

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

+0

Хорошее «рассказать», чтобы узнать, является ли это брандмауэром, вызывающим ошибку, что для получения ошибки потребуется довольно много времени. Если MySQL вызывает проблемы, ответ должен быть довольно быстрым. –

Смежные вопросы