sql >> Database teknologi >  >> RDS >> Mysql

Fjernforbindelser Mysql Ubuntu

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


  1. Sådan ændres datoformat i Oracle-database

  2. Hvordan returnerer man resultatet af en SELECT i en funktion i PostgreSQL?

  3. Forespørgselsoptimering i PostgreSQL. FORKLAR Grundlæggende – Del 3

  4. Hvordan kan jeg bruge mySQL replace() til at erstatte strenge i flere poster?