Jeg har installert MySQL Community Edition 5.5 på min lokale maskin, og jeg vil tillate eksterne tilkoblinger slik at jeg kan koble til fra en ekstern kilde.
Hvordan kan jeg gjøre det?
Det er tillatt som standard i MySQL.
Det som er deaktivert som standard er ekstern root
-tilgang. Hvis du vil aktivere det, kjører du denne SQL-kommandoen lokalt:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
Og finn deretter følgende linje og kommenter den ut i filen my.cnf
, som vanligvis ligger på /etc/mysql/my.cnf
på Unix/OSX-systemer. I noen tilfeller er plasseringen for filen /etc/mysql/mysql.conf.d/mysqld.cnf).
Hvis det er et Windows-system, kan du finne den i MySQL-installasjonskatalogen, vanligvis noe som C:\Program Files\MySQL\MySQL Server 5.5\
og filnavnet vil være my.ini
.
Endre linje
bind-address = 127.0.0.1
til
#bind-address = 127.0.0.1
og start MySQL-serveren på nytt (Unix/OSX og Windows) for at endringene skal tre i kraft.
I mitt tilfelle prøvde jeg å koble til en ekstern mysql-server på cent OS. Etter å ha gått gjennom mange løsninger (tildeling av alle privilegier, fjerning av ip-bindinger, aktivering av nettverk) ble problemet fortsatt ikke løst.
Som det viste seg, mens jeg så på forskjellige løsninger, kom jeg over iptables, noe som fikk meg til å innse at mysql-port 3306 ikke aksepterte tilkoblinger.
Her er et lite notat om hvordan jeg sjekket og løste dette problemet.
telnet (mysql server ip) [portNo]
iptables -A INPUT -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
service iptables stop
Håper dette hjelper.
Hvis MySQL-serverprosessen din bare lytter på 127.0.0.1 eller ::1, vil du ikke kunne koble til eksternt. Hvis du har en bind-adresse
-innstilling i /etc/my.cnf
, kan dette være kilden til problemet.
Du må også legge til rettigheter for en bruker som ikke er localhost
.