Включить удаленный доступ (предоставление) Домой / Учебники / Mysql / Включить удаленный доступ (предоставление) Если вы попытаетесь подключиться к серверу mysql с удаленного компьютера и столкнетесь с ошибкой, как показано ниже, эта статья для вас.
ОШИБКА 1130 (HY000): хосту 1.2.3.4 не разрешено подключаться к этому серверу MySQL
Изменить конфиг mysql
Начните с редактирования файла конфигурации mysql
vim /etc/mysql/my.cnf
Закомментируйте следующие строки.
#bind-address = 127.0.0.1
#skip-networking
Если вы не нашли пропущенную строку, добавьте ее и закомментируйте.
Перезапустите сервер MySQL.
~ /etc/init.d/mysql restart
Изменить привилегию GRANT
Вы можете быть удивлены, увидев, что даже после вышеуказанных изменений вы не получаете удаленный доступ или доступ, но не можете использовать все базы данных.
По умолчанию имя пользователя и пароль mysql, которые вы используете, разрешены для локального доступа к mysql-серверу. Так что нужно обновить привилегию.
Запустите команду, как показано ниже, чтобы получить доступ со всех машин. (Замените USERNAME
и PASSWORD
вашими учетными данными.)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
Запустите команду как ниже, чтобы дать доступ с определенного IP. (Замените USERNAME
и PASSWORD
вашими учетными данными.)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'1.2.3.4' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
Вы можете заменить 1.2.3.4 своим IP. Вы можете выполнить указанную выше команду много раз, чтобы получить доступ GRANT с нескольких IP-адресов.
Вы также можете указать отдельный USERNAME
& PASSWORD
для удаленного доступа.
Вы можете проверить окончательный результат по:
SELECT * from information_schema.user_privileges where grantee like "'USERNAME'%";
Наконец, вам также может понадобиться запустить:
mysql> FLUSH PRIVILEGES;
Тестовое соединение
Из терминала / командной строки:
mysql -h HOST -u USERNAME -pPASSWORD
Если вы получили оболочку mysql, не забудьте запустить show database; чтобы проверить, есть ли у вас права с удаленных компьютеров.
Бонус-совет: отозвать доступ
Если вы случайно предоставили доступ пользователю, лучше использовать опцию отзыва.
Далее будут отменены все параметры для USERNAME со всех компьютеров:
mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'USERNAME'@'%';
Following will revoke all options for USERNAME from particular IP:
mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'USERNAME'@'1.2.3.4';
Its better to check information_schema.user_privileges table after running REVOKE command.
Если после запуска команды REVOKE вы видите привилегию USAGE, это нормально. Это так же хорошо, как и никаких привилегий. Я не уверен, что это можно отозвать.