Как настроить сервер MySql для приема удаленных подключений?


16

Я устанавливаю сервер MySql на рабочий стол Ubuntu. Я мог бы подключить к нему MySql Query Browser при указанииServer Hostname as localhost, но когда я заменяю его на IP-адрес машины, он перестает работать (даже если MySql Query Browser работает на той же машине).

Все, что я до сих пор делал, - это удаление iptables, но, похоже, это не имеет к этому никакого отношения.

Вот сообщение об ошибке

Не удалось подключиться к хосту «192.168.0.2».

MySQL Error Nr. 2003

Не удается подключиться к серверу MySQL на 192.168.0.2 (111)

Нажмите кнопку «Пинг», чтобы увидеть, есть ли проблемы с сетью.

Пинг в порядке, хотя

Ответы:


22

Вы должны будете связать свой mysqld с IP-адресом, отличным от 127.0.0.1.

Откройте ваш my.cnf (обычно /etc/mysql/my.cnf) и измените строку с надписью

bind = 127.0.0.1

к любому IP, который ваша машина использует для подключения к внешнему миру. 0.0.0.0привязывается ко всем IP-адресам. Не забудьте перезапустить MySQL после этого изменения.


теперь получена другая ошибка: не удалось подключиться к хосту «192.168.0.2». MySQL Error Nr. 1130 Хосту "what-vubuntu.local" не разрешено подключаться к этому серверу MySQL
Jader Dias

user @ localhost и user @ <hostname> разные. Вы должны добавить пользователя, чтобы иметь возможность подключаться с удаленных хостов.
Джеймс

Это не проблема. Я сделал это, и я все еще получаю ошибку.
Cerin

Должно ли это быть bind-address?
Томас Веллер


2

Здесь объясняется еще несколько потенциальных проблем:

http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html http://dev.mysql.com/doc/refman/5.1/ru /access-denied.html

Если вы хотите предоставить все привилегии для всех баз данных, попробуйте

grant all on *.* to 'joe'@'%';

Однако, прежде чем сделать это, убедитесь, что у вас есть пользователь в базе данных «mysql», в котором «Host» настроен на ваш IP-адрес - в моем случае, мой IP здесь, дома. Таким образом, у пользователя "joe" может быть несколько записей, по одной на каждый IP-адрес, с которого он может звонить. Чтобы увидеть, что у вас там уже есть:

use mysql;
select Host, User, Password from user where user='joe';`

В моем случае оказалось, что у моего пользователя теперь был правильный IP, но пароль также отсутствовал. Я вырезал и вставил пароль (он хэширован или что-то в этом роде), и это решило мою проблему с удаленным подключением:

update user set Password='5493845039485' where user='joe';

Еще одна вещь, в my.cnf вы можете установить «port = 3306» или любой другой порт, который вы планируете использовать.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.