sql >> Database >  >> RDS >> Mysql

Externe toegang tot MySQL-database inschakelen

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,

  1. Wat zijn de best practices voor het gebruik van een GUID als primaire sleutel, met name met betrekking tot prestaties?

  2. cross-app xml-query presteert exponentieel slechter naarmate xml-document groeit

  3. Excel-blad converteren naar database van sqlite in Android

  4. Invoegen in MySQL vanuit PHP (jQuery/AJAX)