Як налаштувати сервер MySql, щоб прийняти віддалені з'єднання?


16

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

Все, що я зробив поки що, - це видалити iptables, але, схоже, це не має нічого спільного.

Ось повідомлення про помилку

Не вдалося підключитися до хоста '192.168.0.2'.

Помилка MySQL Nr. 2003 рік

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

Натисніть кнопку "Ping", щоб побачити, чи є проблема з мережею.

Пінг все в порядку

Відповіді:


22

Вам доведеться прив’язати свій mysqld до IP, відмінного від 127.0.0.1.

Відкрийте свій файл my.cnf (/etc/mysql/my.cnf, як правило) і змініть рядок, який говорить

bind = 127.0.0.1

до будь-якого IP, який ваша машина використовує для підключення до зовнішнього світу. 0.0.0.0прив'язує до всіх IP-адрес. Не забудьте перезапустити свій mysqld після цієї зміни.


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

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

Це не проблема. Я це зробив, і я все ще отримую помилку.
Серін

Це повинно бути 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/uk /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.