Csatlakozás az Azure Database for MySQL-hez átirányítással
A következőkre vonatkozik: Azure Database for MySQL – Önálló kiszolgáló
Fontos
Az önálló Azure Database for MySQL-kiszolgáló a kivonási útvonalon van. Határozottan javasoljuk, hogy frissítsen rugalmas Azure Database for MySQL-kiszolgálóra. További információ a rugalmas Azure Database for MySQL-kiszolgálóra való migrálásról: Mi történik az önálló Azure Database for MySQL-kiszolgálóval?
Ez a cikk azt ismerteti, hogyan csatlakoztathat egy alkalmazást az Azure Database for MySQL-kiszolgálóhoz átirányítási móddal. Az átirányítás csökkenti az ügyfélalkalmazások és a MySQL-kiszolgálók közötti hálózati késést azáltal, hogy lehetővé teszi az alkalmazások számára, hogy közvetlenül csatlakozzanak a háttérkiszolgáló-csomópontokhoz.
Előkészületek
Jelentkezzen be az Azure Portalra. Hozzon létre egy Azure Database for MySQL-kiszolgálót az 5.6-os, 5.7-es vagy 8.0-s motorverzióval.
További részletekért tekintse meg, hogyan hozhat létre Azure Database for MySQL-kiszolgálót az Azure Portal vagy az Azure CLI használatával.
Fontos
Az átirányítás jelenleg nem támogatott a Private Link for Azure Database for MySQL-hez.
Átirányítás engedélyezése
Az Azure Database for MySQL-kiszolgálón konfigurálja a paramétert redirect_enabled
úgy, hogy ON
átirányítási móddal engedélyezze a kapcsolatokat. A kiszolgálóparaméter frissítéséhez használja az Azure Portalt vagy az Azure CLI-t.
PHP
A PHP-alkalmazások átirányításának támogatása a Microsoft által kifejlesztett mysqlnd_azure bővítményen keresztül érhető el.
A mysqlnd_azure bővítmény a PECL használatával vehető fel a PHP-alkalmazásokhoz, és erősen ajánlott a bővítmény telepítése és konfigurálása a hivatalosan közzétett PECL-csomagon keresztül.
Fontos
A PHP mysqlnd_azure bővítmény átirányításának támogatása jelenleg előzetes verzióban érhető el.
Átirányítási logika
Fontos
Az átirányítási logika/viselkedés az 1.1.0-s verziótól kezdve frissült, és ajánlott az 1.1.0-s verzió használata.
Az átirányítási viselkedést a függvény értéke mysqlnd_azure.enableRedirect
határozza meg. Az alábbi táblázat az átirányítás viselkedését ismerteti az 1.1.0-s verziótól kezdődő paraméter értéke alapján.
Ha a mysqlnd_azure bővítmény régebbi verzióját használja (1.0.0-1.0.3-s verzió), az átirányítási viselkedést a függvény értéke mysqlnd_azure.enabled
határozza meg. Az érvényes értékek (hasonlóan viselkednek off
, mint az alábbi táblázatban ismertetett viselkedés) és on
(az alábbi táblázatban leírtakhoz hasonlóan preferred
viselkednek).
mysqlnd_azure.enableRedirect érték | Viselkedés |
---|---|
off vagy 0 |
Az átirányítás nem lesz használva. |
on vagy 1 |
- Ha a kapcsolat nem használ SSL-t az illesztőprogram oldalán, nem jön létre kapcsolat. A következő hibaüzenet jelenik meg: "mysqlnd_azure.enableRedirect be van kapcsolva, de az SSL-beállítás nincs beállítva a kapcsolati sztring. Átirányítás csak SSL használatával lehetséges." - Ha az SSL az illesztőprogram oldalán van használva, de az átirányítás nem támogatott a kiszolgálón, az első kapcsolat megszakad, és a következő hibaüzenet jelenik meg: "Csatlakozás az átirányítás megszakadt, mert az átirányítás nincs engedélyezve a MySQL-kiszolgálón, vagy a hálózati csomag nem felel meg az átirányítási protokollnak." – Ha a MySQL-kiszolgáló támogatja az átirányítást, de az átirányított kapcsolat bármilyen okból meghiúsult, megszakítja az első proxykapcsolatot is. Adja vissza az átirányított kapcsolat hibáját. |
preferred vagy 2 (alapértelmezett érték) |
- ha lehetséges, mysqlnd_azure az átirányítást fogja használni. – Ha a kapcsolat nem használ SSL-t az illesztőprogram oldalán, a kiszolgáló nem támogatja az átirányítást, vagy az átirányított kapcsolat nem valós okból nem csatlakozik, miközben a proxykapcsolat továbbra is érvényes, az első proxykapcsolatra esik vissza. |
Az önálló Azure Database for MySQL-kiszolgálóval mysqlnd_azure.enableRedirect
való sikeres kapcsolódáshoz a megfelelőségi követelményeknek megfelelően be kell tartania a főtanúsítvány egyesítésének kötelező lépéseit. További részletekért látogasson el a hivatkozásra.
A dokumentum következő szakaszai ismertetik, hogyan telepíthető a bővítmény a mysqlnd_azure
PECL használatával, és hogyan állíthatja be ennek a paraméternek az értékét.
Előfeltételek
- PHP 7.2.15+ és 7.3.2+ verzió
- PHP PEAR
- php-mysql
- Azure Database for MySQL kiszolgáló
Telepítse a mysqlnd_azure a PECL használatával. Ajánlott az 1.1.0-s verziót használni.
sudo pecl install mysqlnd_azure
Keresse meg a bővítménykönyvtárat (
extension_dir
) az alábbi futtatásával:php -i | grep "extension_dir"
Módosítsa a könyvtárakat a visszaadott mappára, és győződjön meg arról, hogy
mysqlnd_azure.so
ebben a mappában található.Keresse meg az .ini fájlok mappáit az alábbi parancs futtatásával:
php -i | grep "dir for additional .ini files"
Módosítsa a könyvtárakat erre a visszaadott mappára.
Hozzon létre egy új .ini fájlt a következőhöz
mysqlnd_azure
: . Győződjön meg arról, hogy a név betűrendje a mysqnld betűrendje után van, mivel a modulok betöltése az ini-fájlok névsorrendje szerint történik. Ha példáulmysqlnd
az .ini névvel van elnevezve10-mysqlnd.ini
, nevezze el a mysqlnd ini nevet20-mysqlnd-azure.ini
.Az új .ini fájlban adja hozzá a következő sorokat az átirányítás engedélyezéséhez.
extension=mysqlnd_azure mysqlnd_azure.enableRedirect = on/off/preferred
Átirányítás megerősítése
Azt is ellenőrizheti, hogy az átirányítás az alábbi PHP-kódmintával van-e konfigurálva. Hozzon létre egy PHP-fájlt, mysqlConnect.php
és illessze be az alábbi kódot. Frissítse a kiszolgáló nevét, felhasználónevét és jelszavát a sajátjával.
<?php
$host = '<yourservername>.mysql.database.azure.com';
$username = '<yourusername>@<yourservername>';
$password = '<yourpassword>';
$db_name = 'testdb';
echo "mysqlnd_azure.enableRedirect: ", ini_get("mysqlnd_azure.enableRedirect"), "\n";
$db = mysqli_init();
//The connection must be configured with SSL for the redirection test
$link = mysqli_real_connect ($db, $host, $username, $password, $db_name, 3306, NULL, MYSQLI_CLIENT_SSL);
if (!$link) {
die ('Connect error (' . mysqli_connect_errno() . '): ' . mysqli_connect_error() . "\n");
}
else {
echo $db->host_info, "\n"; //if redirection succeeds, the host_info will differ from the hostname you used used to connect
$res = $db->query('SHOW TABLES;'); //test query with the connection
print_r ($res);
$db->close();
}
?>
További lépések
- További információ a kapcsolati sztring okról: Csatlakozás ion Strings.