Normalt er fjernadgang til MySQL-databaseserveren deaktiveret af sikkerhedsmæssige årsager. Men noget tid skal du give fjernadgang til MySQL-databaseserveren hjemmefra eller en webserver. Du kan følge disse trin for at aktivere det.
Trin 1 :Log ind med SSH (hvis serveren er uden for dit miljø eller intranet)
Først skal du logge ind over ssh til ekstern MySQL-databaseserver fra Windows ved hjælp af PuTTy eller fra Linux ved hjælp af SSH
Trin 2 :Rediger my.cnf-filen
Når du er tilsluttet, skal du redigere MySQL-serverens konfigurationsfil my.cnf ved hjælp af en teksteditor såsom vi:
- På Debian Linux filen er placeret på /etc/mysql/my.cnf placering.
- På Red Hat Linux/Fedora/Centos Linux filen er placeret på /etc/my.cnf placering.
For at redigere /etc/my.cnf skal du køre:
# vi /etc/my.cnf
- På Windows , er my.ini-filen placeret på C:\Program Files\MySQL\MySQL Server X.Y (X.Y er versionsnummeret på MySQL-serveren)
For Windows skal du åbne filen my.ini i notesblok
Trin 3:Når filen er åbnet, skal du finde linje, der lyder som følger
[mysqld]
Sørg for, at linjespring-netværk er kommenteret (eller fjern linje), og tilføj følgende linje
bind-address=YOUR-SERVER-IP
For eksempel, hvis din MySQL-server IP er 173.234.21.12, vil hele blokken se ud som følger:
[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 ....
Hvor,
- bind-adresse :IP-adresse, der skal bindes til.
- spring over netværk :Lyt slet ikke efter TCP/IP-forbindelser. Al interaktion med mysqld skal foretages via Unix-sockets. Denne mulighed anbefales stærkt til systemer, hvor kun lokale anmodninger er tilladt. Da du skal tillade fjernforbindelse, skal denne linje fjernes fra my.cnf eller kommenteres.
Trin 4:Gem og luk filen
På Debian / Ubuntu Linux skal du skrive følgende kommando for at genstarte mysql-serveren:
# /etc/init.d/mysql restart
På RHEL / CentOS / Fedora / Scientific Linux, skriv følgende kommando for at genstarte mysql-serveren:
# /etc/init.d/mysqld restart
I Windows skal du åbne kommandoprompten som administrator og skrive
net stop MySQL net start MySQL
Trin 5:Giv adgang til ekstern IP-adresse
Giv adgang til en ny database
Hvis du vil tilføje en ny database kaldet foo for brugerbar og ekstern IP 162.72.20.23, skal du skrive følgende kommandoer ved mysql-prompten:
mysql> CREATE DATABASE foo; mysql> GRANT ALL ON foo.* TO bar@'162.72.20.23' IDENTIFIED BY 'PASSWORD';
Giv adgang til en eksisterende database
Lad os antage, at du altid opretter forbindelse fra fjern-IP kaldet 162.72.20.23 til databasen kaldet webdb for brugerens webadmin. For at give adgang til denne IP-adresse for eksisterende database, skriv følgende kommando ved mysql-prompten:
mysql> update db set Host='162.72.20.23' where Db='webdb'; mysql> update user set Host='162.72.20.23' where user='webadmin';
Trin 6:Log ud af MySQL
Skriv exit-kommando for at logge ud af mysql:
mysql> exit
Trin 7:Åbn port 3306
En eksempel iptables-regel til at åbne Linux iptables firewall
/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT
ELLER tillad kun fjernforbindelse fra din webserver placeret på 162.72.20.23:
/sbin/iptables -A INPUT -i eth0 -s 162.72.20.23 -p tcp --destination-port 3306 -j ACCEPT
ELLER tillad kun fjernforbindelse fra dit LAN-undernet 192.168.1.0/24:
/sbin/iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp --destination-port 3306 -j ACCEPT
Gem endelig alle regler (RHEL / CentOS-specifik kommando):
# service iptables save
I Windows skal du gå til Kontrolpanel> Windows Firewall> Tilføj indgående regel for port 3306
Trin 8:Test fjernadgang til MySQL-database
Skriv følgende kommando fra dit fjernsystem eller dit skrivebord:
$ mysql -u webadmin –h 173.234.21.12 –p
I Windows skal du køre MySQL-kommandolinjeprogrammet og logge på som administrator ved at skrive følgende kommando fra MySQL-rodmappen (f.eks. 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
Hvor,