Připojení ke službě Azure Database for MySQL s přesměrováním
PLATÍ PRO: Jednoúčelový server Azure Database for MySQL
Důležité
Jednoúčelový server Azure Database for MySQL je na cestě vyřazení. Důrazně doporučujeme upgradovat na flexibilní server Azure Database for MySQL. Další informace o migraci na flexibilní server Azure Database for MySQL najdete v tématu Co se děje s jednoúčelovým serverem Azure Database for MySQL?
Tento článek vysvětluje, jak připojit aplikaci k serveru Azure Database for MySQL s režimem přesměrování. Přesměrování snižuje latenci sítě mezi klientskými aplikacemi a servery MySQL tím, že umožňuje aplikacím připojovat se přímo k uzlům back-endového serveru.
Než začnete
Přihlaste se k portálu Azure. Vytvořte server Azure Database for MySQL s modulem verze 5.6, 5.7 nebo 8.0.
Podrobnosti najdete v tématu vytvoření serveru Azure Database for MySQL pomocí webu Azure Portal nebo Azure CLI.
Důležité
Přesměrování se v současné době nepodporuje u služby Private Link pro Azure Database for MySQL.
Povolení přesměrování
Na serveru Azure Database for MySQL nakonfigurujte redirect_enabled
parametr tak, aby ON
povoloval připojení s režimem přesměrování. Pokud chcete aktualizovat tento parametr serveru, použijte Azure Portal nebo Azure CLI.
PHP
Podpora přesměrování v aplikacích PHP je dostupná prostřednictvím rozšíření mysqlnd_azure vyvinutého Microsoftem.
Rozšíření mysqlnd_azure je k dispozici pro přidání do aplikací PHP prostřednictvím PECL a důrazně doporučujeme nainstalovat a nakonfigurovat rozšíření prostřednictvím oficiálně publikovaného balíčku PECL.
Důležité
Podpora přesměrování v rozšíření PHP mysqlnd_azure je aktuálně ve verzi Preview.
Logika přesměrování
Důležité
Byla aktualizována logika přesměrování nebo chování začínající verzí 1.1.0 a doporučuje se použít verzi 1.1.0 nebo novější.
Chování přesměrování je určeno hodnotou mysqlnd_azure.enableRedirect
. Následující tabulka popisuje chování přesměrování na základě hodnoty tohoto parametru počínaje verzí 1.1.0+.
Pokud používáte starší verzi rozšíření mysqlnd_azure (verze 1.0.0-1.0.3), je chování přesměrování určeno hodnotou mysqlnd_azure.enabled
. Platné hodnoty jsou off
(fungují podobně jako chování popsané v tabulce níže) a on
(funguje jako preferred
v tabulce níže).
hodnota mysqlnd_azure.enableRedirect | Chování |
---|---|
off nebo 0 |
Přesměrování se nepoužije. |
on nebo 1 |
– Pokud připojení nepoužívá protokol SSL na straně ovladače, není provedeno žádné připojení. Vrátí se následující chyba: "mysqlnd_azure.enableRedirect je zapnutý, ale v připojovací řetězec není nastavená možnost SSL. Přesměrování je možné pouze s PROTOKOLem SSL." – Pokud se ssl používá na straně ovladače, ale přesměrování není na serveru podporované, první připojení se přeruší a vrátí se následující chyba: "Připojení došlo k přerušení, protože přesměrování není povolené na serveru MySQL nebo síťový balíček nesplňuje protokol přesměrování." – Pokud server MySQL podporuje přesměrování, ale z jakéhokoli důvodu se přesměrované připojení nezdařilo, přerušte také první připojení proxy serveru. Vrátí chybu přesměrovaného připojení. |
preferred nebo 2 (výchozí hodnota) |
– mysqlnd_azure použije přesměrování, pokud je to možné. – Pokud připojení nepoužívá protokol SSL na straně ovladače, server nepodporuje přesměrování nebo se přesměrované připojení nepodaří připojit z jakéhokoli nefaktálního důvodu, zatímco připojení proxy serveru je stále platné, vrátí se zpět na první připojení proxy serveru. |
Pokud chcete úspěšné připojení k jednoúčelovém serveru Azure Database for MySQL, mysqlnd_azure.enableRedirect
musíte postupovat podle požadavků na dodržování předpisů podle povinných kroků při kombinování kořenového certifikátu. Další podrobnosti najdete na odkazu.
Následující části dokumentu popisují, jak nainstalovat mysqlnd_azure
rozšíření pomocí PECL a nastavit hodnotu tohoto parametru.
Požadavky
- PHP verze 7.2.15 nebo novější a 7.3.2+
- PHP PEAR
- php-mysql
- Databáze Azure pro server MySQL
Nainstalujte mysqlnd_azure s PECL. Doporučujeme použít verzi 1.1.0 nebo novější.
sudo pecl install mysqlnd_azure
Vyhledejte adresář rozšíření (
extension_dir
) spuštěním následujícího příkazu:php -i | grep "extension_dir"
Změňte adresáře na vrácenou složku a ujistěte se, že
mysqlnd_azure.so
je umístěná v této složce.Složku pro soubory .ini vyhledejte spuštěním následujícího příkazu:
php -i | grep "dir for additional .ini files"
Změňte adresáře na tuto vrácenou složku.
Vytvořte nový soubor .ini pro
mysqlnd_azure
. Ujistěte se, že pořadí abecedy názvu je za názvem mysqnld, protože moduly jsou načteny podle pořadí názvů souborů ini. Pokud má napříkladmysqlnd
název .ini, pojmenujte10-mysqlnd.ini
mysqlnd ini jako20-mysqlnd-azure.ini
.Do nového souboru .ini přidejte následující řádky pro povolení přesměrování.
extension=mysqlnd_azure mysqlnd_azure.enableRedirect = on/off/preferred
Potvrzení přesměrování
Můžete také ověřit, že je přesměrování nakonfigurované s následujícím vzorovým kódem PHP. Vytvořte volaný mysqlConnect.php
soubor PHP a vložte následující kód. Aktualizujte název serveru, uživatelské jméno a heslo vlastním.
<?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();
}
?>
Další kroky
- Další informace o připojovací řetězec naleznete v tématu Připojení ion Řetězce.