Verbinding maken met Azure Database for MariaDB met omleiding
Belangrijk
Azure Database for MariaDB bevindt zich op het buitengebruikstellingspad. We raden u ten zeerste aan om te migreren naar Azure Database for MySQL. Zie Wat gebeurt er met Azure Database for MariaDB voor meer informatie over migreren naar Azure Database for MySQL.
In dit onderwerp wordt uitgelegd hoe u een toepassing verbindt met uw Azure Database for MariaDB-server met de omleidingsmodus. Omleiding is bedoeld om de netwerklatentie tussen clienttoepassingen en MariaDB-servers te verminderen door toepassingen rechtstreeks verbinding te laten maken met back-endserverknooppunten.
Voordat u begint
Meld u aan bij het Azure-portaal. Maak een Azure Database for MariaDB-server met engineversie 10.2 of 10.3.
Raadpleeg voor meer informatie hoe u een Azure Database for MariaDB-server maakt met behulp van Azure Portal of Azure CLI.
Belangrijk
Omleiding wordt momenteel niet ondersteund met Private Link voor Azure Database for MariaDB.
Omleiding inschakelen
Configureer op uw Azure Database for MariaDB-server de redirect_enabled
parameter om verbindingen met de omleidingsmodus toe te ON
staan. Als u deze serverparameter wilt bijwerken, gebruikt u Azure Portal of Azure CLI.
PHP
Ondersteuning voor omleiding in PHP-toepassingen is beschikbaar via de mysqlnd_azure-extensie , ontwikkeld door Microsoft.
De mysqlnd_azure-extensie is beschikbaar om toe te voegen aan PHP-toepassingen via PECL en het wordt ten zeerste aanbevolen om de extensie te installeren en te configureren via het officieel gepubliceerde PECL-pakket.
Omleidingslogica
Belangrijk
Omleidingslogica/gedrag vanaf versie 1.1.0 is bijgewerkt en het wordt aanbevolen om versie 1.1.0+ te gebruiken.
Het omleidingsgedrag wordt bepaald door de waarde van mysqlnd_azure.enableRedirect
. In de onderstaande tabel wordt het gedrag van omleiding beschreven op basis van de waarde van deze parameter vanaf versie 1.1.0+.
Als u een oudere versie van de mysqlnd_azure-extensie (versie 1.0.0-1.0.3) gebruikt, wordt het omleidingsgedrag bepaald door de waarde van mysqlnd_azure.enabled
. De geldige waarden zijn off
(werkt op dezelfde manier als het gedrag dat in de onderstaande tabel wordt beschreven) en on
(fungeert als preferred
in de onderstaande tabel).
mysqlnd_azure.enableRedirect-waarde | Gedrag |
---|---|
off of 0 |
Omleiding wordt niet gebruikt. |
on of 1 |
- Als de verbinding geen SSL aan de stuurprogrammazijde gebruikt, wordt er geen verbinding gemaakt. De volgende fout wordt geretourneerd: 'mysqlnd_azure.enableRedirect is ingeschakeld, maar de SSL-optie is niet ingesteld in verbindingsreeks. Omleiding is alleen mogelijk met SSL." - Als SSL wordt gebruikt aan de stuurprogrammazijde, maar omleiding niet wordt ondersteund op de server, wordt de eerste verbinding afgebroken. De volgende fout wordt geretourneerd: 'Verbinding is afgebroken omdat omleiding niet is ingeschakeld op de MariaDB-server of het netwerkpakket voldoet niet aan het omleidingsprotocol'. - Als de MariaDB-server om welke reden dan ook omleiding ondersteunt, maar de omgeleide verbinding is mislukt, wordt ook de eerste proxyverbinding afgebroken. Retourneer de fout van de omgeleide verbinding. |
preferred of 2 (standaardwaarde) |
- mysqlnd_azure maakt indien mogelijk gebruik van omleiding. - Als de verbinding geen SSL aan de stuurprogrammazijde gebruikt, biedt de server geen ondersteuning voor omleiding of kan de omgeleide verbinding om een niet-willekeurige reden geen verbinding maken terwijl de proxyverbinding nog steeds een geldige is, dan valt deze terug op de eerste proxyverbinding. |
De volgende secties van het documentoverzicht over het installeren van de mysqlnd_azure
extensie met PECL en het instellen van de waarde van deze parameter.
Vereisten
- PHP-versies 7.2.15+ en 7.3.2+
- PHP PEREN
- php-mysql
- Azure Database for MariaDB-server
Installeer mysqlnd_azure met PECL. Het is raadzaam om versie 1.1.0+ te gebruiken.
sudo pecl install mysqlnd_azure
Zoek de extensiemap (
extension_dir
) door het onderstaande uit te voeren:sudo php -i | grep "extension_dir"
Wijzig mappen in de geretourneerde map en zorg ervoor dat
mysqlnd_azure.so
deze zich in deze map bevindt.Zoek de map voor .ini bestanden door de onderstaande opdracht uit te voeren:
sudo hp -i | grep "dir for additional .ini files"
Wijzig mappen in deze geretourneerde map.
Maak een nieuw
.ini
bestand voormysqlnd_azure
. Zorg ervoor dat de alfabetvolgorde van de naam zich achter demysqnld
naam bevindt, omdat de modules worden geladen volgens de naamvolgorde van de ini-bestanden. Als .ini bijvoorbeeldmysqlnd
de naam10-mysqlnd.ini
heeft, noemt u de mysqlnd ini als20-mysqlnd-azure.ini
.Voeg in het nieuwe
.ini
bestand de volgende regels toe om omleiding in te schakelen.extension=mysqlnd_azure mysqlnd_azure.enableRedirect = on/off/preferred
Omleiding bevestigen
U kunt ook controleren of de omleiding is geconfigureerd met de onderstaande PHP-voorbeeldcode. Maak een PHP-bestand met de naam mysqlConnect.php
en plak de onderstaande code. Werk de servernaam, gebruikersnaam en wachtwoord bij met uw eigen naam.
<?php
$host = '<yourservername>.mariadb.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 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 differs from the hostname you used to connect
$res = $db->query('SHOW TABLES;'); //test query with the connection
print_r ($res);
$db->close();
}
?>
Volgende stappen
Zie Verbindingsreeksen voor meer informatie over verbindingsreeks s.