GNU/Linux >> Znalost Linux >  >> Linux

[Opraveno] Hostitel se nemůže připojit k tomuto serveru MySQL

Vývojáři aplikací mohou mít potíže s připojením k databázi hostované na jiném než místním serveru. V tomto článku vyřešíme běžnou chybu, ke které dochází při vzdáleném připojení k databázi MySQL zvenčí sítě nebo z jiného hostitele.

SQLSTATE[HY000] [1130] Host '172.19.0.11' is not allowed to connect to this MySQL server dojde k chybě, když je požadavek na připojení odmítnut serverem MySQL. Ve výchozím nastavení server MySQL přijímá pouze připojení od místních hostitelů, nikoli od jiných hostitelů.

Chcete-li povolit vzdálená připojení, musíme provést následující kroky –

  1. Povolte vzdálená připojení z konfigurace
  2. Vytvořte nového uživatele a povolte mu připojení k databázovému serveru z konkrétního hostitele (nebo všech hostitelů)
  3. Vyprázdnit oprávnění

Povolte vzdálená připojení z konfigurace MySQL

Otevřete konfiguraci MySQL pomocí svého oblíbeného textového editoru, jako je nano. Soubor MySQL se obvykle nachází na adrese /etc/mysql/my.cnf nebo /etc/my.cnf nebo /etc/mysql/mysql.conf.d/mysqld.cnf . Umístění konfiguračního souboru MySQL závisí na verzi MySQL, kterou používáte. Zkontrolujte všechna tato umístění a zjistěte, zda můžete najít konfigurační soubor. Připojte se k našemu serveru Discord a dejte nám vědět, pokud jste konfigurační soubor ještě nenašli. Možná vám můžeme pomoci.

Po nalezení konfiguračního souboru jej otevřete a komentujte řádek bind-address = 127.0.0.1 .

Stačí přidat # před řádek, abyste to okomentovali.

# bind-address = 127.0.0.1

Vytvořit nového uživatele MySQL

Vytváříme uživatele mysql s hostitelem jako „localhost“ pro místní použití, ale při přidávání uživatele pro vzdálená připojení musíme nahradit localhost IP adresou vzdáleného počítače.

Přihlaste se do MySQL jako root –

sudo mysql

Or

mysql -u root -p

V závislosti na zvolené metodě budete vyzváni k zadání hesla. Pokud používáte druhou metodu, zadejte heslo uživatele root MySQL nebo sudo heslo, pokud se přihlašujete pomocí sudo .

Jakmile jste v příkazovém řádku MySQL, vytvořte nového uživatele –

> CREATE USER 'username'@'ip-address' IDENTIFIED BY 'set-password';
Nahraďte prosím „uživatelské jméno ‘ s požadovaným uživatelským jménem, ​​‘nastavit heslo “ se silným heslem a „ip-adresa se vzdálenou IP adresou ve výše uvedeném příkazu.

Pokud je vytvořen nový uživatel, měli byste vidět následující zprávu –

Query OK, 0 rows affected (0.02 sec)

Nyní nově vytvořenému uživateli udělíme oprávnění ke správě konkrétní databáze na serveru. Tomuto uživateli můžeme také poskytnout přístup ke všem databázím na serveru, ale nedoporučujeme to. Doporučuji, abyste pro své aplikace vytvořili novou databázi (databáze) a udělili tomuto uživateli oprávnění ke správě databází.

> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'ip-address';
Nahraďte prosím uživatelské jméno v předchozím příkazu skutečným uživatelským jménem a ip-adresa s IP adresou vzdáleného počítače (hostitel).

Po dokončení prosím vyprázdněte oprávnění, aby se změny projevily.

> FLUSH PRIVILEGES;

Povolit všechna vzdálená připojení

Stejně jako v předchozím příkazu jsem dal pokyn k nahrazení ip-adresy IP adresou vzdáleného počítače. Povolena budou pouze připojení z tohoto vzdáleného počítače. Můžeme však také použít zástupný znak „%“, abychom povolili všechna připojení, bez ohledu na to, zda jsou z vašeho počítače nebo od toho chlapíka ze sklepa, který potřebuje přístup k vaší databázi z osobních důvodů. 😉 Pro přístup do databáze však budou muset zadat správné přihlašovací údaje.

> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'%';

Pokud je váš databázový server v provozu, důrazně se doporučuje nepoužívat '%' zástupný znak.

Povolit připojení z rozsahu IP adres

Pokud jsou vzdálené servery ve stejné síti, jejich IP adresám lze snadno povolit vzdálená připojení bez potřeby více uživatelů MySQL.

> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'172.19.0.*';

Všimněte si, jak byl poslední oktet adresy IP nahrazen znakem * ve výše uvedeném příkazu. To umožňuje všem serverům s touto IP adresou začínat 172.19.0.


Linux
  1. [Opraveno] uživatelské jméno není v souboru sudoers

  2. WSL - GEDIT Nelze inicializovat server:Nelze se připojit:Připojení odmítnuto

  3. Co by mohlo znamenat 'Roaming není povolen serverem' klienta ssh?

  1. [Opraveno] Hostitel se nemůže připojit k tomuto serveru MySQL

  2. Hostujte WordPress v Ubuntu 20.04, Mysql 8, Ubuntu 20.04, Nginx

  3. Načítání veřejného klíče není povoleno – chyba WSO2 MySQL

  1. Tmux nevyužívá .tmux.conf?

  2. Nelze se připojit k databázi; Uživatel existuje v databázi, ale ne na úrovni serveru

  3. Připojte se ke cloudovému serveru