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.enableRedirecthatá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.enabledhatá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.enableRedirectvaló 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ó
  1. 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
    
  2. Keresse meg a bővítménykönyvtárat (extension_dir) az alábbi futtatásával:

    php -i | grep "extension_dir"
    
  3. 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ó.

  4. Keresse meg az .ini fájlok mappáit az alábbi parancs futtatásával:

    php -i | grep "dir for additional .ini files"
    
  5. Módosítsa a könyvtárakat erre a visszaadott mappára.

  6. 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ául mysqlnd az .ini névvel van elnevezve 10-mysqlnd.ini, nevezze el a mysqlnd ini nevet 20-mysqlnd-azure.ini.

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