Maison  >  Article  >  base de données  >  Pourquoi ma connexion PHP SSL à un serveur MySQL distant échoue-t-elle et comment puis-je y remédier à l'aide de MySQLi ou PDO ?

Pourquoi ma connexion PHP SSL à un serveur MySQL distant échoue-t-elle et comment puis-je y remédier à l'aide de MySQLi ou PDO ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-21 06:10:10467parcourir

Why is my PHP SSL connection to a remote MySQL server failing, and how can I fix it using MySQLi or PDO?

Connectez-vous au serveur MySQL distant avec SSL depuis PHP

Impossible de se connecter via mysql_connect

Vous rencontrez une "Erreur de connexion SSL" en essayant de connectez-vous à un serveur MySQL distant avec SSL en utilisant mysql_connect. Cette erreur survient après avoir ajouté les paramètres nécessaires à my.cnf et réussi à se connecter au serveur avec -h ip -u user -p depuis le terminal.

Solution : passer à MySQLi ou PDO_MYSQL

Le mysql_connect obsolète a une prise en charge limitée pour SSL. Pensez à passer à mysqli_connect ou PDO_MYSQL.

Pour mysqli_connect, spécifiez les options SSL comme suit :

mysqli_options($db, MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, true);
$db->ssl_set('/path/to/client-key.pem', '/path/to/client-cert.pem', '/path/to/ca-cert.pem');

Pour PDO_MYSQL, incluez les options SSL dans le tableau de connexion :

PDO::MYSQL_ATTR_SSL_KEY => '/path/to/client-key.pem',
PDO::MYSQL_ATTR_SSL_CERT => '/path/to/client-cert.pem',
PDO::MYSQL_ATTR_SSL_CA => '/path/to/ca-cert.pem'

Notes supplémentaires

  • Assurez-vous d'avoir une version récente de PHP, car la prise en charge SSL pour PDO est limitée dans les anciennes versions.
  • Reportez-vous au manuel de développement PHP pour plus de détails sur MySQLi et PDO_MYSQL avec SSL.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn