В тази кратка статия ще научите как да разрешите „ГРЕШКА 1130 (HY000):Хост x.x.x.x не е разрешен да се свързва с този MySQL сървър ” грешка в разгръщането на база данни на MySQL/MariaDB в Linux система. Това е една от често срещаните грешки при свързване с отдалечена база данни, срещани от потребителите.
Тестова среда:
- IP на сървъра на приложения :10.24.96.5
- IP сървър на база данни :10.24.96.6
Срещнахме грешката при тестване на връзката с база данни от един от нашите сървъри на приложения към сървър на база данни, използвайки mysql клиент, както е показано.
# mysql -u database_username -p -h 10.24.96.6
Грешката показва, че хостът 10.24.96.5 от който потребителят на базата данни се свързва, няма право да се свързва с MySQL сървъра. В този случай трябва да направим някои промени в сървъра на базата данни, за да позволим на потребителя да се свърже отдалечено.
На сървъра на базата данни трябва да проверим хоста, от който потребителят по-горе има право да се свързва.
# mysql -u root -p
Изпълнете следните SQL команди, за да проверите хоста на потребителя:
MariaDB [(none)]> SELECT host FROM mysql.user WHERE user = "database_username";
От изхода на командата на потребителя е позволено да се свърже със сървъра на базата данни само от localhost . И така, трябва да актуализираме хостовете на потребителя, както следва.
Изпълнете следния GRANT команда, за да разрешите достъпа до MySQL за отдалечения потребител от отдалечен хост. Не забравяйте да замените „10.24.96.6 ” с IP адреса на отдалечената система и „база_парола ” към паролата, която искате „database_username ”, за да използвате:
MariaDB [(none)]> GRANT ALL ON database_name.* to 'database_username'@'10.24.96.5' IDENTIFIED BY 'database_password'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> SELECT host FROM mysql.user WHERE user = "database_username";
За да предоставите на потребител отдалечен достъп от всички хостове в мрежата, използвайте синтаксиса по-долу:
MariaDB [(none)]> GRANT ALL ON database_name.* to 'database_username'@'10.24.96.%' IDENTIFIED BY 'database_password';
След като направите горните промени, опитайте да се свържете отдалечено със сървъра на базата данни MySQL още веднъж. Връзката трябва да е успешна, както е показано на следната екранна снимка.
# mysql -u database_username -p -h 10.24.96.6
Надяваме се, че това решение ви е помогнало при решаването на вашата грешка в отдалечената връзка с Mysql. Ако имате някакви въпроси, свържете се с нас чрез формата за обратна връзка по-долу.