Rumah  >  Artikel  >  pangkalan data  >  Mengapa sambungan PHP SSL saya ke pelayan MySQL jauh gagal, dan bagaimana saya boleh membetulkannya menggunakan MySQLi atau PDO?

Mengapa sambungan PHP SSL saya ke pelayan MySQL jauh gagal, dan bagaimana saya boleh membetulkannya menggunakan MySQLi atau PDO?

Susan Sarandon
Susan Sarandonasal
2024-11-21 06:10:10469semak imbas

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

Sambung ke Pelayan MySQL Jauh dengan SSL daripada PHP

Tidak Dapat Sambung melalui mysql_connect

Anda menghadapi "ralat sambungan SSL" semasa cuba sambung ke pelayan MySQL jauh dengan SSL menggunakan mysql_connect. Ralat ini timbul selepas menambah parameter yang diperlukan pada my.cnf dan berjaya menyambung ke pelayan dengan -h ip -u pengguna -p dari terminal.

Penyelesaian: Tukar ke MySQLi atau PDO_MYSQL

Mysql_connect yang lapuk mempunyai sokongan terhad untuk SSL. Pertimbangkan untuk menukar kepada mysqli_connect atau PDO_MYSQL.

Untuk mysqli_connect, nyatakan pilihan SSL seperti berikut:

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');

Untuk PDO_MYSQL, sertakan pilihan SSL dalam tatasusunan sambungan:

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'

Tambahan Nota

  • Pastikan anda mempunyai versi PHP terkini, kerana sokongan SSL untuk PDO adalah terhad dalam versi lama.
  • Rujuk manual pembangunan PHP untuk butiran lanjut tentang MySQLi dan PDO_MYSQL dengan SSL.

Atas ialah kandungan terperinci Mengapa sambungan PHP SSL saya ke pelayan MySQL jauh gagal, dan bagaimana saya boleh membetulkannya menggunakan MySQLi atau PDO?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn