Dela via


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.enableRedirectfö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.enabledfö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.enableRedirectdu 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
  1. Installera mysqlnd_azure med PECL. Vi rekommenderar att du använder version 1.1.0+.

    sudo pecl install mysqlnd_azure
    
  2. Leta upp tilläggskatalogen (extension_dir) genom att köra nedanstående:

    php -i | grep "extension_dir"
    
  3. Ändra kataloger till den returnerade mappen och se till att mysqlnd_azure.so den finns i den här mappen.

  4. Leta upp mappen för .ini filer genom att köra nedanstående:

    php -i | grep "dir for additional .ini files"
    
  5. Ändra kataloger till den returnerade mappen.

  6. 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. Om mysqlnd .ini till exempel heter 10-mysqlnd.ini, namnger du mysqlnd ini som 20-mysqlnd-azure.ini.

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