使用 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(); }
PDO_MYSQL 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']);
通过执行以下步骤并根据您的特定环境调整提供的代码,您可以使用 SSL 成功建立与远程 MySQL 服务器的安全连接: PHP。
以上是如何在 PHP 中使用 SSL 安全连接到远程 MySQL 服务器?的详细内容。更多信息请关注PHP中文网其他相关文章!