For at udsætte MySQL for andet end localhost skal du have følgende linje
Til mysql version 5.6 og derunder
ukommenteret i /etc/mysql/my.cnf
og tildelt din computers IP-adresse og ikke loopback
Til mysql version 5.7 og nyere
ukommenteret i /etc/mysql/mysql.conf.d/mysqld.cnf
og tildelt din computers IP-adresse og ikke loopback
#Replace xxx with your IP Address
bind-address = xxx.xxx.xxx.xxx
Eller tilføj enbind-address = 0.0.0.0
hvis du ikke ønsker at angive IP'en
Stop derefter og genstart MySQL med den nye my.cnf-post. Når du kører, gå til terminalen og indtast følgende kommando.
lsof -i -P | grep :3306
Det skulle komme tilbage noget som dette med din faktiske IP i xxx'erne
mysqld 1046 mysql 10u IPv4 5203 0t0 TCP xxx.xxx.xxx.xxx:3306 (LISTEN)
Hvis ovenstående erklæring returnerer korrekt, vil du være i stand til at acceptere fjernbrugere. Men for at en fjernbruger kan oprette forbindelse til de korrekte privilegier, skal du have denne bruger oprettet i både den lokale vært og '%' som i.
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
derefter,
GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';
og endelig,
FLUSH PRIVILEGES;
EXIT;
Hvis du ikke har den samme bruger oprettet som ovenfor, kan du, når du logger på lokalt, arve de grundlæggende localhost-privilegier og have adgangsproblemer. Hvis du vil begrænse den adgang, som min bruger har, skal du læse op på GRANT-sætningens syntaks HER Hvis du kommer igennem alt dette og stadig har problemer, skal du skrive noget ekstra fejloutput og de passende my.cnf-linjer.
BEMÆRK:Hvis lsof ikke vender tilbage eller ikke findes, kan du installere det HER baseret på din Linux-distribution. Du behøver ikke lsof for at få tingene til at fungere, men det er ekstremt praktisk, når tingene ikke fungerer som forventet.
OPDATERING:Selv efter tilføjelse/ændring af bind-address
i my.cnf
ikke virkede, så gå og skift det på det sted, det oprindeligt blev erklæret:
/etc/mysql/mariadb.conf.d/50-server.cnf