Kuinka sallia etäyhteys mysql:ään

Olen asentanut MySQL Community Edition 5.5:n paikalliseen koneeseeni ja haluan sallia etäyhteydet, jotta voin muodostaa yhteyden ulkoisesta lähteestä.

Miten voin tehdä sen?

Ratkaisu

Se on oletusarvoisesti sallittua MySQL:ssä.

Oletusarvoisesti poistettu käytöstä on etäkäyttöoikeus root. Jos haluat ottaa sen käyttöön, suorita tämä SQL-komento paikallisesti:

 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
 FLUSH PRIVILEGES;

Etsi sitten seuraava rivi ja kommentoi se pois tiedostostasi my.cnf, joka Unix/OSX-järjestelmissä on yleensä /etc/mysql/my.cnf. Joissakin tapauksissa tiedoston sijainti on /etc/mysql/mysql.conf.d/mysqld.cnf).

Jos kyseessä on Windows-järjestelmä, löydät sen MySQL:n asennushakemistosta, yleensä jostain C:\Program Files\MySQL\MySQL Server 5.5\\ ja tiedostonimi on my.ini.

Muuta rivi

 bind-address = 127.0.0.1

muotoon

 #bind-address = 127.0.0.1

Ja käynnistä MySQL-palvelin uudelleen (Unix/OSX ja Windows), jotta muutokset tulevat voimaan.

Kommentit (27)

Minun tapauksessani yritin muodostaa yhteyden etäyhteyden mysql-palvelimeen cent OS:ssä. Kun olin käynyt läpi monia ratkaisuja (kaikkien oikeuksien myöntäminen, ip-sidonnaisuuksien poistaminen, verkkoyhteyksien ottaminen käyttöön), ongelma ei vieläkään ratkennut.

Kuten kävi ilmi, kun tutkin erilaisia ratkaisuja, törmäsin iptablesiin, joka sai minut ymmärtämään, että mysql-portti 3306 ei hyväksynyt yhteyksiä.

Tässä on pieni huomautus siitä, miten tarkistin ja ratkaisin tämän ongelman.

  • Tarkistetaan, hyväksyykö portti yhteyksiä:
telnet (mysql-palvelimen ip) [portNo]
  • Lisätään ip-taulukkosääntö, jolla sallitaan yhteydet porttiin:
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
  • En suosittelisi tätä tuotantoympäristöön, mutta jos iptablesia ei ole konfiguroitu oikein, sääntöjen lisääminen ei välttämättä vielä ratkaise ongelmaa. Siinä tapauksessa tulisi tehdä seuraavaa:
service iptables stop

Toivottavasti tästä on apua.

Kommentit (0)

Jos MySQL-palvelinprosessisi kuuntelee vain 127.0.0.1 tai ::1, et voi muodostaa etäyhteyttä. Jos sinulla on /etc/my.cnf:ssä bind-address-asetus, se saattaa olla ongelman syy.

Sinun on myös lisättävä oikeudet muulle kuin localhost-käyttäjälle.

Kommentit (2)