Anslut till Azure Database for MySQL med omdirigering
GÄLLER FÖR: Azure Database for MySQL – enskild server
Viktigt!
Azure Database for MySQL – enskild server är på väg att dras tillbaka. Vi rekommenderar starkt att du uppgraderar till en flexibel Azure Database for MySQL-server. Mer information om hur du migrerar till en flexibel Azure Database for MySQL-server finns i Vad händer med Azure Database for MySQL – enskild server?
Den här artikeln beskriver hur du ansluter ett program till din Azure Database for MySQL-server med omdirigeringsläge. Omdirigering minskar nätverksfördröjningen mellan klientprogram och MySQL-servrar genom att tillåta program att ansluta direkt till servernoder.
Innan du börjar
Logga in på Azure-portalen. Skapa en Azure Database for MySQL-server med motorversion 5.6, 5.7 eller 8.0.
Mer information finns i hur du skapar en Azure Database for MySQL-server med hjälp av Azure-portalen eller Azure CLI.
Viktigt!
Omdirigering stöds för närvarande inte med Private Link för Azure Database for MySQL.
Aktivera omdirigering
På Din Azure Database for MySQL-server konfigurerar du parametern redirect_enabled
så att ON
den tillåter anslutningar med omdirigeringsläge. Om du vill uppdatera den här serverparametern använder du Azure-portalen eller Azure CLI.
PHP
Stöd för omdirigering i PHP-program är tillgängligt via mysqlnd_azure-tillägget som utvecklats av Microsoft.
Det mysqlnd_azure tillägget finns att lägga till i PHP-program via PECL, och vi rekommenderar starkt att du installerar och konfigurerar tillägget via det officiellt publicerade PECL-paketet.
Viktigt!
Stöd för omdirigering i PHP-mysqlnd_azure-tillägget finns för närvarande i förhandsversion.
Omdirigeringslogik
Viktigt!
Omdirigeringslogik/beteende som börjar version 1.1.0 uppdaterades och vi rekommenderar att du använder version 1.1.0+.
Omdirigeringsbeteendet bestäms av värdet mysqlnd_azure.enableRedirect
för . Tabellen nedan beskriver beteendet för omdirigering baserat på värdet för den här parametern med början i version 1.1.0+.
Om du använder en äldre version av mysqlnd_azure-tillägget (version 1.0.0-1.0.3) bestäms omdirigeringsbeteendet av värdet mysqlnd_azure.enabled
för . Giltiga värden är off
(fungerar på samma sätt som det beteende som beskrivs i tabellen nedan) och on
(fungerar som preferred
i tabellen nedan).
mysqlnd_azure.enableRedirect-värde | Funktionssätt |
---|---|
off eller 0 |
Omdirigering används inte. |
on eller 1 |
– Om anslutningen inte använder SSL på drivrutinssidan upprättas ingen anslutning. Följande fel returneras: "mysqlnd_azure.enableRedirect är aktiverat, men SSL-alternativet anges inte i niska veze. Omdirigering är endast möjligt med SSL." – Om SSL används på drivrutinssidan, men omdirigeringen inte stöds på servern, avbryts den första anslutningen och följande fel returneras: "Anslutningen avbröts eftersom omdirigering inte är aktiverat på MySQL-servern eller om nätverkspaketet inte uppfyller omdirigeringsprotokollet." – Om MySQL-servern stöder omdirigering, men den omdirigerade anslutningen misslyckades av någon anledning, avbryter du även den första proxyanslutningen. Returnera felet för den omdirigerade anslutningen. |
preferred eller 2 (standardvärde) |
- mysqlnd_azure använder omdirigering om möjligt. – Om anslutningen inte använder SSL på drivrutinssidan stöder servern inte omdirigering, eller om den omdirigerade anslutningen inte kan ansluta av någon icke-fatal anledning medan proxyanslutningen fortfarande är giltig, faller den tillbaka till den första proxyanslutningen. |
För en lyckad anslutning till En enskild Azure Database for MySQL-server med måste mysqlnd_azure.enableRedirect
du följa de obligatoriska stegen för att kombinera rotcertifikatet enligt efterlevnadskraven. Mer information finns på länken.
I de efterföljande avsnitten i dokumentet beskrivs hur du installerar mysqlnd_azure
tillägget med PECL och anger värdet för den här parametern.
Krav
- PHP-versionerna 7.2.15+ och 7.3.2+
- PHP-PÄRON
- php-mysql
- Azure Database för MySQL-server
Installera mysqlnd_azure med PECL. Vi rekommenderar att du använder version 1.1.0+.
sudo pecl install mysqlnd_azure
Leta upp tilläggskatalogen (
extension_dir
) genom att köra nedanstående:php -i | grep "extension_dir"
Ändra kataloger till den returnerade mappen och se till att
mysqlnd_azure.so
den finns i den här mappen.Leta upp mappen för .ini filer genom att köra nedanstående:
php -i | grep "dir for additional .ini files"
Ändra kataloger till den returnerade mappen.
Skapa en ny .ini fil för
mysqlnd_azure
. Kontrollera att namnets alfabetsordning är efter mysqnld eftersom modulerna läses in enligt ini-filernas namnordning. Ommysqlnd
.ini till exempel heter10-mysqlnd.ini
, namnger du mysqlnd ini som20-mysqlnd-azure.ini
.I den nya .ini-filen lägger du till följande rader för att aktivera omdirigering.
extension=mysqlnd_azure mysqlnd_azure.enableRedirect = on/off/preferred
Bekräfta omdirigering
Du kan också bekräfta att omdirigering har konfigurerats med PHP-exempelkoden nedan. Skapa en PHP-fil med namnet mysqlConnect.php
och klistra in koden nedan. Uppdatera servernamnet, användarnamnet och lösenordet med ditt eget.
<?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();
}
?>
Nästa steg
- Mer information om niska veze finns i Anslutningssträngar.