Увімкнути віддалений доступ (надайте) додому / підручники / 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; щоб перевірити, чи маєте ви праві привілеї віддалених машин.
Бонусний рада: Скасуйте доступ
Якщо ви випадково надаєте доступ користувачеві, тоді краще скасувати варіант скасування.
Далі буде скасовано всі параметри для 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, його штраф. Це так добре, як взагалі ніяких пільг. Я не впевнений, чи можна це відкликати.