Här är en snabb checklista för att aktivera fjärranslutningar för MySQL men läs (6) först. Om jag har missat något får du gärna redigera.
1) Din fjärranvändare ansluter via ett konto som skapades med lämplig user,host
poster (titta på utdata från välj användare, värd från mysql.user ordning med 1,2
). Om inte, titta på SKAPA ANVÄNDARE
och/eller GRANT
kommandon. Undersök resultatet från VISA BIDRAG
för användaren.
2) Du har gjort spolningsprivilegier;
(Vissa säger att det är onödigt, andra säger att det är det).
3a) Leta reda på din mysql-konfigurationsfil som hänvisas till i 3b) nedan genom att granska informationen i Detta dokument
(eller för Windows, troligen ner C:\ProgramData\MySQL\MySQL Server 5.NNN
väg). Det varierar beroende på distro för Linux.
3b) Du har ändrat och sparat my.ini
(Windows) eller my.cnf
(Linux) och ändrad bind-adress
bort från 127.0.0.1
eller localhost
, till förmån för 0.0.0.0
. Och du har skapat och tog ut följande rad:#skip-nätverk
. Det kommer att se ut så här:
[mysqld]
bind-address=0.0.0.0
#skip-networking
4) Starta om mysql-demonen. Hur man gör detta varierar beroende på distro.
5) Brandväggsproblem. Kontrollera att porten är 3306
som standard , är öppen för omvärlden (som faktiskt bara kan vara ditt intranät). Detta inkluderar alla andra lager av brandväggar, som AWS EC2 Security Groups eller liknande, om några.
6) Förstå att det finns en säkerhetsrisk förknippad med detta. Om du inte har kunskap om att exponera din mysql-server för fjärranslutningar, utför inte detta.
7) Kör ofta säkerhetsbedömningar med select
uttalande som listas i 1. ovan, inklusive granskning av SHOW GRANTS
för dessa användare. Överbevilja inte användare med jokertecken i onödan. Ge istället användarna de minimala privilegierna för att de ska få sitt arbete gjort.
8) Undersök ofta misslyckade anslutningsförsök via den allmänna loggen och felloggen som presenteras kort nedan.
För inkommande kan du titta på den allmänna frågeloggen.
select @@general_log; -- a 1 indicates it is turned on for capture
select @@general_log_file; -- the file that it logs to
Så alla frågor kan vara inloggad på Allmän frågelogg
om inställningen är aktiverad. Undersök loggen efter "anslut", men särskilt efter Åtkomst nekad för användare
att se misslyckade försök. Gör detta regelbundet (inte med några års mellanrum). Jag gör det minst två gånger om dagen. Observera att du självklart kan automatisera rapporteringen genom ett externt program. Omvärlden kommer att banka din server för att komma in som bilden nedan. Det är en verklighet; bered dig på det.
Kolla in manualsidan för Felloggen också, notera varningsnivåer och inställningar för utförlighet baserat på din version.
Jag skulle rekommendera att man skapar en säkerhetskopia efter datum (namngiven som sådan) och raderar loggfilerna efter säkerhetskopieringen för att starta om efter säkerhetskopieringen. Loggfilerna kan snabbt växa sig enorma i storlek, särskilt den allmänna loggen. Glöm inte om du har inställningen på eller av för loggning eller inte.
Du kan använda de två loggarna för att avgöra om ditt anslutningsförsök tog sig förbi brandväggen under stegen här.