【发布时间】:2009-07-17 01:01:10
【问题描述】:
我有一个托管在远程服务器上的 MySQL 数据库,它只接受 SSL 连接。当我使用带有 SSL 选项的 Java JDBC 连接到这个数据库时,它工作正常。有一个特殊的 jdbc 字符串,我用于 JDBC 连接,如下所示 "jdbc:mysql://:/?verifyServerCertificate=false&useSSL=true&requireSSL=true"
我需要使用 ADODB 库通过 PHP 使用类似的连接。
我在网上发现很少有关于使用 ADODB mysqli 扩展的参考资料
(参考http://mbrisby.blogspot.com/2008/06/adodb-php-mysql-ssl.html)
创建 CA 证书后(我们会说它在 /path/to/ca-cert.pem),确保以下项目在 /etc/my.cnf 的 [client] 节或连接客户端主机上用户的 ~/.my.cnf:
ssl-ca=/path/to/ca-cert.pem
然后试试下面的 PHP 程序:
// 这些是 AdoDB 库的一部分 需要'/path/to/adodb-exceptions.inc.php'; 需要'/path/to/adodb.inc.php';
/* * 我从运行中得到了“2048” * printf("%d\n", MYSQLI_CLIENT_SSL ) * 在 PHP 程序中(安装了 mysqli 扩展) */ $dsn = 'mysqli://ssluser:sslpass@dbhost/test?clientflags=2048';
$dbh = NewADOConnection($dsn);
$sql = "显示类似'ssl_cipher'的状态"; $res =& $dbh->执行($sql); print_r($res->fields); $res->关闭();
$dbh->关闭();
如果我从不同的机器连接到这个 mysql 数据库,是否需要证书信息?
有没有类似 JDBC 字符串的东西可用于 PHP?
如果有人可以发布一个工作示例,那就太好了
谢谢
【问题讨论】: