Android

Távoli kapcsolatok engedélyezése a mysql adatbázis-kiszolgálóval

Configure Port Forwarding to Remotely Access Your Synology NAS | Synology

Configure Port Forwarding to Remotely Access Your Synology NAS | Synology

Tartalomjegyzék:

Anonim

Alapértelmezés szerint a MySQL szerver csak a localhost-tól keresi a kapcsolatokat, azaz csak ugyanazon a gépen futó alkalmazások férhetnek hozzá.

Bizonyos helyzetekben azonban a MySQL szervert távolról kell elérni. Például, ha a távoli MySQL szerverhez szeretne csatlakozni a helyi rendszertől, vagy ha többkiszolgálós központi telepítést használ, ahol az alkalmazás az adatbázis-kiszolgálótól eltérő gépen fut. Az egyik lehetőség a MySQL szerver elérése az SSH alagúton keresztül, a másik lehetőség a MySQL szerver konfigurálása távoli kapcsolatok elfogadására.

Ebben az útmutatóban végigmegyünk a MySQL szerverhez való távoli kapcsolatok engedélyezéséhez szükséges lépéseken. Ugyanezek az utasítások vonatkoznak a MariaDB-re.

A MySQL Server konfigurálása

Az első lépés annak beállítása, hogy a MySQL szerver meghallgassa egy adott IP-címet vagy a gép összes IP-címét.

Ha a MySQL szerver és az ügyfelek privát hálózaton keresztül tudnak kommunikálni egymással, akkor a legjobb megoldás az, ha a MySQL szervert csak a privát IP-n hallgatja. Ellenkező esetben, ha nyilvános hálózaton keresztül szeretne csatlakozni a szerverhez, akkor állítsa be a MySQL szervert a gép összes IP-címének meghallgatására.

Ehhez szerkesztenie kell a MySQL konfigurációs fájlt, és hozzá kell adnia, vagy meg kell változtatnia a bind-address beállítást. Beállíthat egyetlen IP-címet és IP-tartományokat. Ha a cím 0.0.0.0 , a MySQL szerver elfogadja a kapcsolatokat az összes host IPv4 interfészen. Ha az IPv6-ot konfigurálta a rendszeren, akkor a 0.0.0.0 helyett használja a :: .

A MySQL konfigurációs fájl helye a terjesztéstől függően különbözik. Az Ubuntu és a Debian esetében a fájl az /etc/mysql/mysql.conf.d/mysqld.cnf címen található, míg a Red Hat alapú disztribúciókban, például a CentOS, a fájl az /etc/my.cnf fájlban található.

Nyissa meg a fájlt a szövegszerkesztővel:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Keressen egy olyan sort, amely kezdődik a bind-address és állítsa az értékét arra az IP-címre, amelyen a MySQL szerver figyeljen.

Alapértelmezés szerint az értéket 127.0.0.1 állítja (csak a localhost-on hallgat).

Ebben a példában a MySQL szervert úgy állítjuk be, hogy az összes IPv4 interfészen figyeljen, ha az értéket 0.0.0.0

mysqld.cnf

bind-address = 0.0.0.0 # skip-networking

Ha van egy sor, amely skip-networking , törölje azt vagy kommentálja a # elejével a sor elejére.

A MySQL 8.0 vagy újabb verziójában előfordulhat, hogy a bind-address irányelv nincs jelen. Ebben az esetben adja hozzá a szakasz.

Miután kész, indítsa újra a MySQL szolgáltatást, hogy a változások érvénybe lépjenek. Csak a root vagy a sudo jogosultságokkal rendelkező felhasználók indíthatják újra a szolgáltatásokat.

A MySQL szolgáltatás újraindításához Debianon vagy Ubuntuon írja be:

sudo systemctl restart mysql

RedHat alapú disztribúciókon, mint például a CentOS, a szolgáltatásfutás újraindításához:

sudo systemctl restart mysqld

Hozzáférés biztosítása egy felhasználónak távoli számítógépről

A következő lépés az adatbázishoz való hozzáférés engedélyezése a távoli felhasználó számára.

Jelentkezzen be a MySQL szerverre root felhasználóként:

sudo mysql

mysql -uroot -p

A MySQL parancsértelmezőn belül a GRANT utasítás segítségével adja meg a hozzáférést a távoli felhasználó számára.

GRANT ALL ON database_name.* TO user_name@'ip_address' IDENTIFIED BY 'user_password';

Hol:

  • database_name annak az database_name a neve, amelyhez a felhasználó csatlakozik. user_name a MySQL felhasználó neve. ip_address az az IP cím, amelyhez a felhasználó csatlakozik. Használja a % , hogy a felhasználó bármilyen IP-címről csatlakozhasson. user_password a felhasználói jelszó.

Például ahhoz, hogy hozzáférést biztosítson az adatbázis- dbname hez a foo nevű felhasználónak, a my_passwd jelszóval egy ügyfélgépről, IP 10.8.0.5 , futtassa:

GRANT ALL ON dbname.* TO foo@'10.8.0.5' IDENTIFIED BY 'my_passwd';

A tűzfal konfigurálása

Az utolsó lépés a tűzfalak konfigurálása a 3306 -os porton (MySQL alapértelmezett port) történő forgalom engedélyezésére a távoli gépektől.

iptables

sudo iptables -A INPUT -p tcp --destination-port 3306 -j ACCEPT

Adott IP-címről való hozzáférés engedélyezése:

sudo iptables -A INPUT -s 10.8.0.5 -p tcp --destination-port 3306 -j ACCEPT

UFW

Az UFW az Ubuntu alapértelmezett tűzfal eszköze. Az Internet bármely IP-címéről való hozzáférés engedélyezése (nagyon nem biztonságos):

sudo ufw allow 3306/tcp

Adott IP-címről való hozzáférés engedélyezése:

sudo ufw allow from 10.8.0.5 to any port 3306

FirewallD

A FirewallD az alapértelmezett tűzfalkezelő eszköz a CentOS-ban. Az Internet bármely IP-címéről való hozzáférés engedélyezése (nagyon nem biztonságos):

sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp sudo firewall-cmd --reload

Egy adott IP-címen keresztül történő hozzáférés engedélyezéséhez egy adott porton létrehozhat egy új FirewallD zónát, vagy használhat gazdag szabályt. mysqlzone új mysqlzone nevű mysqlzone :

sudo firewall-cmd --new-zone=mysqlzone --permanent sudo firewall-cmd --reload sudo firewall-cmd --permanent --zone=mysqlzone --add-source=10.8.0.5/32 sudo firewall-cmd --permanent --zone=mysqlzone --add-port=3306/tcp sudo firewall-cmd --reload

A változások ellenőrzése

Futtassa a következő parancsot annak ellenőrzéséhez, hogy a távoli felhasználó csatlakozhat-e a MySQL szerverhez:

mysql -u user_name -h mysql_server_ip -p

Ahol a user_name annak a user_name a neve, mysql_server_ip hozzáférést biztosított, a mysql_server_ip pedig annak a gazdagépnek az IP-címe, ahol a MySQL szerver fut.

Ha minden helyesen van beállítva, akkor bejelentkezhet a távoli MySQL szerverre.

ERROR 2003 (HY000): Can't connect to MySQL server on '10.8.0.5' (111)"

Az alábbi hiba azt jelzi, hogy a belépni próbáló felhasználónak nincs engedélye a távoli MySQL szerver elérésére.

"ERROR 1130 (HY000): Host '10.8.0.5' is not allowed to connect to this MySQL server"

Következtetés

A MySQL, amely alapértelmezés szerint a legnépszerűbb nyílt forráskódú adatbázis-kiszolgáló, csak a helyihoston figyeli a bejövő kapcsolatokat.

A MySQL-kiszolgálóval történő távoli kapcsolatok engedélyezéséhez a következő lépéseket kell végrehajtania:

  1. Konfigurálja a MySQL szervert az összes vagy egy adott felületen történő meghallgatáshoz. Adjon hozzáférést a távoli felhasználóhoz.Nyissa meg a tűzfal MySQL portját.
mysql mariadb