Я устанавливаю сервер MySql на рабочий стол Ubuntu. Я мог бы подключить к нему MySql Query Browser, указав Server Hostname
так как localhost
, но когда я заменяю его IP-адресом машины, он перестает работать (даже если браузер запросов MySql работает на том же компьютере).
Все, что я сделал до сих пор, - это удаление iptables, но, похоже, это не имеет к этому никакого отношения.
Вот сообщение об ошибке
Не удалось подключиться к хосту 192.168.0.2.
Ошибка MySQL № 2003 г.
Не удается подключиться к серверу MySQL на 192.168.0.2 (111)
Нажмите кнопку «Ping», чтобы узнать, есть ли проблемы с сетью.
Хотя пинг в порядке
Вам нужно будет привязать ваш mysqld к IP-адресу, отличному от 127.0.0.1.
Откройте свой my.cnf (обычно /etc/mysql/my.cnf) и измените строку, в которой говорится
bind = 127.0.0.1
к любому IP-адресу, который ваша машина использует для подключения к внешнему миру. 0.0.0.0
привязывается ко всем IP-адресам. Не забудьте перезапустить mysqld после этого изменения.
В дополнение к ответу Halfdan мне пришлось выполнить следующую команду mysql:
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
ON databasename.*
TO 'username'@'clientipaddress'
IDENTIFIED BY 'password'
Как я узнал на
Здесь объясняется еще несколько потенциальных проблем:
http://www.cyberciti.biz/tips/how-do-i-enable-remote-access-to-mysql-database-server.html http://dev.mysql.com/doc/refman/5.1/en/access-denied.html
Если вы хотите предоставить все права всем базам данных, попробуйте
grant all on *.* to 'joe'@'%';
Однако, прежде чем вы это сделаете, убедитесь, что у вас есть пользователь в базе данных «mysql», у которого «Хост» установлен на ваш 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» или любой другой порт, который вы планируете использовать.