Обикновено отдалеченият достъп до сървъра на базата данни MySQL е деактивиран от съображения за сигурност. Въпреки това, известно време трябва да осигурите отдалечен достъп до MySQL сървър на база данни от дома или уеб сървър. Можете да следвате тези стъпки, за да го активирате.
Стъпка 1:Влезте с помощта на SSH (ако сървърът е извън вашата среда или интранет)
Първо, влезте през ssh в отдалечен сървър на база данни MySQL от Windows с PuTTy или от Linux чрез SSH
Стъпка 2:Редактирайте файла my.cnf
След като се свържете, трябва да редактирате конфигурационния файл на MySQL сървъра my.cnf с помощта на текстов редактор като vi:
- На Debian Linux файлът се намира в /etc/mysql/my.cnf местоположение.
- На Red Hat Linux/Fedora/Centos Linux файлът се намира на адрес /etc/my.cnf местоположение.
За да редактирате /etc/my.cnf, изпълнете:
# vi /etc/my.cnf
- На Windows , my.ini файлът се намира в C:\Program Files\MySQL\MySQL Server X.Y (X.Y е номерът на версията на MySQL сървъра)
За Windows отворете файла my.ini в бележника
Стъпка 3:След като файлът се отвори, намерете ред, който гласи както следва
[mysqld]
Уверете се, че мрежата за пропускане на ред е коментирана (или премахнете реда) и добавете следния ред
bind-address=YOUR-SERVER-IP
Например, ако IP на вашия MySQL сървър е 173.234.21.12, тогава целият блок ще изглежда както следва:
[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 ....
Къде,
- свързване-адрес :IP адрес за свързване.
- пропускане на мрежа :Изобщо не слушайте за TCP/IP връзки. Цялото взаимодействие с mysqld трябва да се извършва чрез Unix сокети. Тази опция е силно препоръчителна за системи, където са разрешени само локални заявки. Тъй като трябва да разрешите отдалечена връзка, този ред трябва да бъде премахнат от my.cnf или коментиран.
Стъпка 4:Запазете и затворете файла
В Debian / Ubuntu Linux въведете следната команда, за да рестартирате mysql сървъра:
# /etc/init.d/mysql restart
На RHEL / CentOS / Fedora / Scientific Linux въведете следната команда, за да рестартирате mysql сървъра:
# /etc/init.d/mysqld restart
В Windows отворете командния ред като администратор и въведете
net stop MySQL net start MySQL
Стъпка 5:Предоставете достъп до отдалечен IP адрес
Предоставете достъп до нова база данни
Ако искате да добавите нова база данни, наречена foo за потребителска лента и отдалечен IP 162.72.20.23, тогава трябва да въведете следните команди в подкана mysql:
mysql> CREATE DATABASE foo; mysql> GRANT ALL ON foo.* TO bar@'162.72.20.23' IDENTIFIED BY 'PASSWORD';
Предоставете достъп до съществуваща база данни
Да предположим, че винаги осъществявате връзка от отдалечен IP, наречен 162.72.20.23, към база данни, наречена webdb за потребител webadmin. За да предоставите достъп до този IP адрес за съществуваща база данни, въведете следната команда в 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';
Стъпка 6:Излизане от MySQL
Въведете команда exit, за да излезете от mysql:
mysql> exit
Стъпка 7:Отворете порт 3306
Примерно правило на iptables за отваряне на защитната стена на Linux iptables
/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT
ИЛИ разреши само отдалечена връзка от вашия уеб сървър, разположен на 162.72.20.23:
/sbin/iptables -A INPUT -i eth0 -s 162.72.20.23 -p tcp --destination-port 3306 -j ACCEPT
ИЛИ разреши само отдалечена връзка от вашата LAN подмрежа 192.168.1.0/24:
/sbin/iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp --destination-port 3306 -j ACCEPT
Накрая запазете всички правила (специфична команда за RHEL / CentOS):
# service iptables save
В Windows отидете на Контролен панел> Защитна стена на Windows> Добавяне на входящо правило за порт 3306
Стъпка 8:Тествайте отдалечен достъп до базата данни MySQL
От вашата отдалечена система или вашия работен плот въведете следната команда:
$ mysql -u webadmin –h 173.234.21.12 –p
В Windows стартирайте програмата от командния ред MySQL и влезте като администратор, като напишете следната команда от основната папка на MySQL (напр. 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
Където,