Vietējā datorā ir instalēta MySQL Community Edition 5.5, un es gribu atļaut attālinātos savienojumus, lai es varētu izveidot savienojumu no ārēja avota.
Kā es to varu izdarīt?
MySQL tas ir atļauts pēc noklusējuma.
Pēc noklusējuma ir atspējota attālinātā root
piekļuve. Ja vēlaties to iespējot, izpildiet šo SQL komandu lokāli:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Un pēc tam atrodiet šādu rindu un izrakstiet to** savā my.cnf
failā, kas Unix/OSX sistēmās parasti atrodas /etc/mysql/my.cnf
. Dažos gadījumos šī faila atrašanās vieta ir /etc/mysql/mysql.conf.d/mysqld.cnf).
Ja tā ir Windows sistēma, to var atrast MySQL instalācijas direktorijā, parasti tā ir C:\Program Files\MySQL\MySQL Server 5.5\
, un faila nosaukums būs my.ini
.
Mainiet rindu
bind-address = 127.0.0.1
uz
#bind-address = 127.0.0.1
Un restartējiet MySQL serveri (Unix/OSX un Windows), lai izmaiņas stātos spēkā.
Manā gadījumā es mēģināju izveidot savienojumu ar attālu mysql serveri cent OS. Pēc daudzu risinājumu izmantošanas (visu privilēģiju piešķiršana, ip piesaistes noņemšana, tīkla iespējošana) problēma joprojām nebija atrisināta.
Izrādījās, ka, meklējot dažādus risinājumus, es sastapos ar iptables, kas man lika saprast, ka mysql 3306 ports nepieņem savienojumus.
Šeit ir neliela piezīme par to, kā es pārbaudīju un atrisināju šo problēmu.
telnet (mysql server ip) [portNo]
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
service iptables stop
Ceru, ka tas palīdzēs.
Ja jūsu MySQL servera process klausās tikai 127.0.0.0.1 vai ::1, jūs nevarēsiet izveidot savienojumu attālināti. Ja jums ir bind-address
iestatījums /etc/my.cnf
, tas varētu būt problēmas cēlonis.
Jums būs arī jāpievieno privilēģijas lietotājam, kas nav localhost
lietotājs.