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?
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.
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.
telnet (mysql-palvelimen ip) [portNo]
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
service iptables stop
Toivottavasti tästä on apua.
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.