Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Terhubung ke server MySQL jarak jauh dengan SSL dari PHP

"Sayangnya saya tidak dapat menggunakan lib mysqli karena terlalu banyak adaptor yang berfungsi untuk pdo_mysql."

Anda menggunakan ekstensi MySQL lama ("mysql_connect"), yang tidak lagi dalam pengembangan (hanya pemeliharaan ). Karena Anda menggunakan PHP 5, Anda mungkin ingin menggunakan MySQLi , MySQL Meningkatkan Perpanjangan. Antara lain, ia memiliki antarmuka berorientasi objek, dukungan untuk pernyataan siap/banyak dan telah meningkatkan kemampuan debugging. Anda dapat membaca lebih lanjut tentang mengonversi ke MySQLi di sini ; lebih lanjut tentang kelas mysqli itu sendiri di sini .

Berikut ini beberapa contoh kode yang dapat membantu Anda memulai:

<?php
ini_set ('error_reporting', E_ALL);
ini_set ('display_errors', '1');
error_reporting (E_ALL|E_STRICT);

$db = mysqli_init();
mysqli_options ($db, MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, true);

$db->ssl_set('/etc/mysql/ssl/client-key.pem', '/etc/mysql/ssl/client-cert.pem', '/etc/mysql/ssl/ca-cert.pem', NULL, NULL);
$link = mysqli_real_connect ($db, 'ip', 'user', 'pass', 'db', 3306, NULL, MYSQLI_CLIENT_SSL);
if (!$link)
{
    die ('Connect error (' . mysqli_connect_errno() . '): ' . mysqli_connect_error() . "\n");
} else {
    $res = $db->query('SHOW TABLES;');
    print_r ($res);
    $db->close();
}
?>

Jika PDO_MYSQL benar-benar yang Anda inginkan, maka Anda perlu melakukan sesuatu seperti ini:

<?php
$pdo = new PDO('mysql:host=ip;dbname=db', 'user', 'pass', array(
    PDO::MYSQL_ATTR_SSL_KEY    =>'/etc/mysql/ssl/client-key.pem',
    PDO::MYSQL_ATTR_SSL_CERT=>'/etc/mysql/ssl/client-cert.pem',
    PDO::MYSQL_ATTR_SSL_CA    =>'/etc/mysql/ssl/ca-cert.pem'
    )
);
$statement = $pdo->query("SHOW TABLES;");
$row = $statement->fetch(PDO::FETCH_ASSOC);
echo htmlentities($row['_message']);
?>

Namun, hanya versi PHP terbaru yang memiliki dukungan SSL untuk PDO, dan opsi SSL diam-diam diabaikan di (setidaknya) versi 5.3.8:lihat laporan bug .

Semoga berhasil!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Memilih Baris Acak di MySQL

  2. Neo4j - Buat Indeks menggunakan Cypher

  3. JSON_STORAGE_SIZE() – Temukan Ukuran Penyimpanan Dokumen JSON di MySQL

  4. Panduan Merancang Database Untuk Kuis Di MySQL

  5. Pemantauan Basis Data - Pemecahan Masalah Prometheus Dengan Dasbor SCUMM