Gewoonlijk is externe toegang tot de MySQL-databaseserver om veiligheidsredenen uitgeschakeld. U moet echter enige tijd externe toegang verlenen tot de MySQL-databaseserver vanuit huis of een webserver. U kunt deze stappen volgen om het in te schakelen.
Stap 1:Log in met SSH (als de server zich buiten uw omgeving of intranet bevindt)
Log eerst in via ssh op de externe MySQL-databaseserver vanuit Windows met PuTTy of vanuit Linux met SSH
Stap 2:Bewerk het my.cnf-bestand
Eenmaal verbonden, moet u het MySQL-serverconfiguratiebestand my.cnf bewerken met een teksteditor zoals vi:
- Op Debian Linux bestand bevindt zich op /etc/mysql/my.cnf locatie.
- Op Red Hat Linux/Fedora/Centos Linux bestand bevindt zich op /etc/my.cnf locatie.
Om /etc/my.cnf te bewerken, voer je uit:
# vi /etc/my.cnf
- Op Windows , bevindt het my.ini-bestand zich in C:\Program Files\MySQL\MySQL Server X.Y (X.Y is het versienummer van de MySQL-server)
Open voor Windows het bestand my.ini in Kladblok
Stap 3:Zodra het bestand is geopend, zoekt u de regel die als volgt luidt
[mysqld]
Zorg ervoor dat de regel voor het overslaan van netwerken is becommentarieerd (of verwijder de regel) en voeg de volgende regel toe
bind-address=YOUR-SERVER-IP
Als uw MySQL-server-IP bijvoorbeeld 173.234.21.12 is, ziet het hele blok er als volgt uit:
[mysqld] user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr datadir = /var/lib/mysql tmpdir = /tmp language = /usr/share/mysql/English bind-address = 173.234.21.12 # skip-networking ....
Waar,
- bind-adres :IP-adres om aan te binden.
- netwerk overslaan :Luister helemaal niet naar TCP/IP-verbindingen. Alle interactie met mysqld moet plaatsvinden via Unix-sockets. Deze optie wordt sterk aanbevolen voor systemen waar alleen lokale verzoeken zijn toegestaan. Aangezien je externe verbinding moet toestaan, moet deze regel worden verwijderd uit my.cnf of worden becommentarieerd.
Stap 4:Sla het bestand op en sluit het
Typ op Debian / Ubuntu Linux de volgende opdracht om de mysql-server opnieuw op te starten:
# /etc/init.d/mysql restart
Typ op RHEL / CentOS / Fedora / Scientific Linux het volgende commando om de mysql-server opnieuw op te starten:
# /etc/init.d/mysqld restart
Open in Windows de opdrachtprompt als beheerder en typ
net stop MySQL net start MySQL
Stap 5:Toegang verlenen tot een extern IP-adres
Toegang verlenen tot een nieuwe database
Als u een nieuwe database met de naam foo voor gebruikersbalk en externe IP 162.72.20.23 wilt toevoegen, moet u de volgende opdrachten typen achter de mysql-prompt:
mysql> CREATE DATABASE foo; mysql> GRANT ALL ON foo.* TO bar@'162.72.20.23' IDENTIFIED BY 'PASSWORD';
Toegang verlenen tot een bestaande database
Laten we aannemen dat u altijd verbinding maakt vanaf een extern IP-adres genaamd 162.72.20.23 naar een database met de naam webdb voor gebruiker webadmin. Om toegang te verlenen tot dit IP-adres voor een bestaande database, typt u de volgende opdracht achter de mysql-prompt:
mysql> update db set Host='162.72.20.23' where Db='webdb'; mysql> update user set Host='162.72.20.23' where user='webadmin';
Stap 6:Uitloggen van MySQL
Typ exit-commando om uit te loggen bij mysql:
mysql> exit
Stap 7:Open poort 3306
Een voorbeeld van een iptables-regel om de Linux iptables-firewall te openen
/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT
OF sta alleen externe verbinding toe vanaf uw webserver op 162.72.20.23:
/sbin/iptables -A INPUT -i eth0 -s 162.72.20.23 -p tcp --destination-port 3306 -j ACCEPT
OF sta alleen externe verbinding toe vanaf uw lan-subnet 192.168.1.0/24:
/sbin/iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp --destination-port 3306 -j ACCEPT
Sla ten slotte alle regels op (specifieke opdracht RHEL / CentOS):
# service iptables save
Ga in Windows naar Configuratiescherm> Windows Firewall> Regel voor inkomend verkeer toevoegen voor poort 3306
Stap 8:Test externe toegang tot MySQL-database
Typ de volgende opdracht vanaf uw externe systeem of uw bureaublad:
$ mysql -u webadmin –h 173.234.21.12 –p
Voer in Windows het MySQL-opdrachtregelprogramma uit en log in als beheerder door de volgende opdracht in de MySQL-hoofdmap te typen (bijv. Program Files\MySQL\MySQL Server 5.5\bin):
C:\Program Files\MySQL\MySQL Server 5.5\bin>mysql -u webadmin –h 173.234.21.12 –p
Waar,