Включить удаленный доступ (предоставление) Домой / Учебники / Mysql / Включить удаленный доступ (предоставление) Если вы попытаетесь подключиться к серверу MySQL с удаленного компьютера и столкнетесь с ошибкой, как показано ниже, эта статья для вас.
ОШИБКА 1130 (HY000): хосту 1.2.3.4 не разрешено подключаться к этому серверу MySQL
Изменить конфигурацию mysql
Начать с редактирования конфигурации mysqlfile
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, это нормально.Это так же хорошо, как и никаких привилегий.Я не уверен, что это можно отозвать.