sql >> Databáze >  >> RDS >> Mysql

Připojení MySQL nefunguje

Zde je rychlý rychlý kontrolní seznam pro povolení vzdálených připojení pro MySQL, ale nejprve si přečtěte (6). Pokud jsem něco přehlédl, klidně to upravte.

1) Váš vzdálený uživatel se připojuje prostřednictvím účtu, který byl vytvořen s příslušným user,host záznamy (podívejte se na výstup z vyberte uživatele,hostitel z mysql.user pořadí podle 1,2 ). Pokud ne, podívejte se na VYTVOŘIT UŽIVATELE a/nebo GRANT příkazy. Prohlédněte si výstup z ZOBRAZIT GRANTY pro uživatele.

2) Provedli jste flush oprávnění; (Někteří říkají, že je to zbytečné, jiní říkají, že je).

3a) Vyhledejte svůj konfigurační soubor mysql uvedený v bodě 3b) níže prostudováním informací v Tento dokument (nebo pro Windows, pravděpodobně níže C:\ProgramData\MySQL\MySQL Server 5.NNN cesta). Liší se podle distribuce pro Linux.

3b) Upravili jste a uložili my.ini (Windows) nebo my.cnf (Linux) a změněná bind-address mimo 127.0.0.1 nebo localhost , ve prospěch 0.0.0.0 . A vytvořili jste a odstraňte následující řádek:#skip-networking . Bude to vypadat podobně jako toto:

[mysqld]
bind-address=0.0.0.0
#skip-networking

4) Restartujte démona mysql. Jak to udělat, se liší podle distribuce.

5) Problémy s firewallem. Ujistěte se, že port, výchozí je 3306 , je otevřený okolnímu světu (který může být ve skutečnosti jen vaším intranetem). To zahrnuje jakékoli další vrstvy firewallů, jako jsou skupiny zabezpečení AWS EC2 nebo podobné, pokud existují.

6) Pochopte, že s tím souvisí bezpečnostní riziko. Pokud nemáte znalosti o vystavení serveru mysql vzdáleným připojením, neprovádějte to.

7) Spouštějte prosím časté hodnocení zabezpečení pomocí select prohlášení uvedené v 1. výše včetně přezkoumání ZOBRAZIT GRANTY pro tyto uživatele. Nepřidělujte uživatelům zbytečně zástupné znaky. Raději dejte uživatelům minimální oprávnění, aby mohli vykonávat svou práci.

8) Často kontrolujte neúspěšné pokusy o připojení prostřednictvím obecného protokolu a protokolu chyb, jak je stručně uvedeno níže.

Pro příchozí se můžete podívat na obecný protokol dotazů.

select @@general_log; -- a 1 indicates it is turned on for capture
select @@general_log_file; -- the file that it logs to

Takže všechny dotazy mohou být přihlášeni do záznamu obecných dotazů pokud je nastavení zapnuto. Prozkoumejte protokol pro "připojit", ale zejména pro Přístup odepřen uživateli vidět neúspěšné pokusy. Dělejte to pravidelně (ne každých několik let). Dělám to minimálně dvakrát denně. Všimněte si, že hlášení můžete samozřejmě automatizovat pomocí externího programu. Vnější svět bude bušit váš server, abyste se dostali dovnitř jako na obrázku níže. Je to realita; připravte se na to.

Podívejte se na manuálovou stránku pro Protokol chyb také si poznamenejte úrovně varování a nastavení výřečnosti podle vaší verze.

Doporučil bych vytvořit záložní kopii podle data (takto pojmenovanou) a po zálohování odstranit soubory protokolu, abyste mohli začít znovu po zálohování. Soubory protokolu se mohou rychle zvětšit, zejména obecný protokol. Nezapomeňte, zda máte nastavení zapnuto nebo vypnuto pro protokolování.

Pomocí těchto dvou protokolů můžete zjistit, zda váš pokus o připojení prošel bránou firewall během kroků zde.




  1. Vracet pouze číselné hodnoty v MySQL

  2. Zaznamenejte každý dotaz MySQL do souboru povolením Obecného přihlášení MAMP

  3. Výběr všech záznamů pomocí dotazu SQL LIMIT a OFFSET

  4. Jak nainstalovat MySQL 8 na Ubuntu