sql >> Databasteknik >  >> RDS >> Mysql

Aktivera fjärråtkomst till MySQL-databasen

Vanligtvis är fjärråtkomst till MySQL-databasserver inaktiverad av säkerhetsskäl. Men en tid behöver du ge fjärråtkomst till MySQL-databasservern hemifrån eller en webbserver. Du kan följa dessa steg för att aktivera det.

Steg 1 :Logga in med SSH (om servern är utanför din miljö eller intranät)

Logga först in över ssh till fjärr MySQL-databasserver från Windows med PuTTy eller från Linux med SSH

Steg 2 :Redigera my.cnf-filen

När du är ansluten måste du redigera MySQL-serverns konfigurationsfil my.cnf med en textredigerare som vi:

  • Debian Linux filen finns på /etc/mysql/my.cnf plats.
  • Red Hat Linux/Fedora/Centos Linux filen finns på /etc/my.cnf plats.

För att redigera /etc/my.cnf, kör:

# vi /etc/my.cnf
  • Windows , my.ini-filen finns på C:\Program Files\MySQL\MySQL Server X.Y (X.Y är versionsnumret för MySQL-servern)

För Windows, öppna filen my.ini i anteckningsblock

Steg 3:När filen har öppnats, leta reda på raden som lyder enligt följande

[mysqld]

Se till att linjehoppning-nätverk har kommenterats (eller ta bort rad) och lägg till följande rad

bind-address=YOUR-SERVER-IP

Till exempel, om din MySQL-server IP är 173.234.21.12 kommer hela blocket att se ut så här:

[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
....

Var,

  • bind-adress :IP-adress att binda till.
  • hoppa över nätverk :Lyssna inte alls efter TCP/IP-anslutningar. All interaktion med mysqld måste göras via Unix-sockets. Det här alternativet rekommenderas starkt för system där endast lokala förfrågningar är tillåtna. Eftersom du måste tillåta fjärranslutning bör denna rad tas bort från my.cnf eller kommenteras.

Steg 4:Spara och stäng filen

På Debian / Ubuntu Linux, skriv följande kommando för att starta om mysql-servern:

# /etc/init.d/mysql restart

På RHEL / CentOS / Fedora / Scientific Linux, skriv följande kommando för att starta om mysql-servern:

# /etc/init.d/mysqld restart

I Windows, öppna kommandotolken som administratör och skriv

net stop MySQL
net start MySQL

Steg 5:Bevilja åtkomst till fjärransluten IP-adress

Ge åtkomst till en ny databas

Om du vill lägga till en ny databas som heter foo för användarbar och fjärr-IP 162.72.20.23 måste du skriva följande kommandon vid mysql-prompten:

mysql> CREATE DATABASE foo;
mysql> GRANT ALL ON foo.* TO bar@'162.72.20.23' IDENTIFIED BY 'PASSWORD';

Ge åtkomst till en befintlig databas

Låt oss anta att du alltid gör en anslutning från fjärr-IP som heter 162.72.20.23 till databasen som heter webdb för användarens webadmin. För att ge åtkomst till denna IP-adress för befintlig databas skriv följande kommando vid 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';

Steg 6:Logga ut från MySQL

Skriv exit-kommandot för att logga ut från mysql:

mysql> exit

Steg 7:Öppna port 3306

Ett exempel på iptables-regel för att öppna Linux iptables-brandvägg

/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT

ELLER tillåt endast fjärranslutning från din webbserver som finns på 162.72.20.23:

/sbin/iptables -A INPUT -i eth0 -s 162.72.20.23 -p tcp --destination-port 3306 -j ACCEPT

ELLER tillåt endast fjärranslutning från ditt LAN-subnät 192.168.1.0/24:

/sbin/iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp --destination-port 3306 -j ACCEPT

Spara slutligen alla regler (RHEL / CentOS-specifikt kommando):
# service iptables save

I Windows går du till Kontrollpanelen> Windows-brandväggen> Lägg till regel för inkommande port 3306

Steg 8:Testa fjärråtkomst till MySQL-databasen

Skriv följande kommando från ditt fjärrsystem eller skrivbordet:

$ mysql -u webadmin –h 173.234.21.12 –p

I Windows kör du MySQL-kommandoradsprogrammet och loggar in som administratör genom att skriva följande kommando från MySQL-rotmappen (t.ex. 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

Var,

  1. måste returnera två uppsättningar data med två olika where-satser

  2. Vad är DATALENGTH()-ekvivalenten i MySQL?

  3. Storleksgräns för JSON-datatyp i PostgreSQL

  4. "Fråga inte tillåten i Waitfor" Fel 101 i SQL Server