使用PHP 的SSL 連接到遠端MySQL 伺服器
使用PHP 的SSL 連接到遠端MySQL 伺服器可能具有挑戰性,尤其是在遠端使用過時的mysql_connect 函數。為了克服這項挑戰,建議使用 MySQL 改進擴充功能 (MySQLi),它提供增強的功能和 SSL 支援。
使用MySQLi
以下PHP 程式碼示範如何使用MySQLi 建立SSL 加密連線:
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(); }
PDOd SSL>
將PDO_MYSQL 與SSL 結合使用需要支援SSL 的最新PHP 版本。對於 5.3.8 之前的版本,SSL 選項將被忽略。但是,以下程式碼範例說明了PDO_MYSQL 的SSL 配置:$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']);
以上是如何在 PHP 中使用 SSL 安全連接到遠端 MySQL 伺服器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!