Hoe op afstand verbinding te maken met mysql

Ik heb MySQL Community Edition 5.5 op mijn lokale machine geïnstalleerd en ik wil verbindingen op afstand toestaan, zodat ik verbinding kan maken vanaf een externe bron.

Hoe kan ik dat doen?

Oplossing

Dat is standaard toegestaan op MySQL.

Wat standaard is uitgeschakeld is remote root toegang. Als u dat wilt inschakelen, voer dan dit SQL commando lokaal uit:

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

En zoek dan de volgende regel op en commentaar het uit in uw my.cnf bestand, dat meestal staat in /etc/mysql/my.cnf op Unix/OSX systemen. In sommige gevallen is de locatie voor het bestand /etc/mysql/mysql.conf.d/mysqld.cnf).

Als het een Windows systeem is, kunt u het vinden in de MySQL installatie directory, meestal iets als C:Program Files\MySQL\MySQL Server 5.5 en de bestandsnaam zal my.ini zijn.

Verander de regel

 bind-address = 127.0.0.1

in

 #bind-address = 127.0.0.1

En herstart de MySQL server (Unix/OSX, en Windows) om de wijzigingen van kracht te laten worden.

Commentaren (27)

In mijn geval probeerde ik verbinding te maken met een remote mysql server op cent OS. Na het doorlopen van een heleboel oplossingen (toekennen van alle privileges, verwijderen van ip bindings, inschakelen van networking) werd het probleem nog steeds niet opgelost.

Toen ik op zoek was naar verschillende oplossingen, kwam ik iptables tegen, wat me deed realiseren dat mysql poort 3306 geen verbindingen accepteerde.

Hier is een kleine notitie over hoe ik dit probleem heb gecontroleerd en opgelost.

  • Controleren of de poort verbindingen accepteert:
telnet (mysql server ip) [portNo]
  • Toevoegen van ip-tabel regel om verbindingen op de poort toe te staan:
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
  • Zou dit niet aanraden voor productie-omgevingen, maar als je iptables niet goed geconfigureerd zijn, kan het toevoegen van de regels het probleem niet oplossen. In dat geval zou het volgende gedaan moeten worden:
service iptables stop

Hopelijk helpt dit.

Commentaren (0)

Als uw MySQL server proces alleen luistert op 127.0.0.1 of ::1 dan zult u niet in staat zijn om op afstand verbinding te maken. Als u een bind-adres instelling heeft in /etc/my.cnf dan kan dit de bron van het probleem zijn.

U zult ook privileges moeten toevoegen voor een niet-localhost gebruiker.

Commentaren (2)