[英]PDO connecting to remote MySQL db
我正在尝试使用PHP连接到远程MySQL数据库。 这本来应该是一件容易的事,但由于我是PHP的新手,所以情况越来越糟。 我得到了一个key-cert.pem,一个client-cert.pem,主机名和凭据。 我在网上复制了一个示例,这就是我所做的:
pdoDb = new PDO(
'mysql:host=customer_host_name;dbname=customer_db_name',
'my_username',
'my_password',
array(
PDO::MYSQL_ATTR_SSL_KEY=>'C:/Apache24/htdocs/PETALO/lib/client-key.pem',
PDO::MYSQL_ATTR_SSL_CERT=>'C:/Apache24/htdocs/PETALO/lib/client-cert.pem'
));
当我执行这段代码时,我得到了这个错误:
Warning: PDO::__construct(): this stream does not support SSL/crypto in C:\Apache24\htdocs\custo\lib\database.php on line 16
Warning: PDO::__construct(): Cannot connect to MySQL by using SSL in C:\Apache24\htdocs\custo\lib\database.php on line 16
Warning: PDO::__construct(): [2002] (trying to connect via tcp://customer_host_name:3306) in C:\Apache24\htdocs\custo\lib\database.php on line 16
error: SQLSTATE[HY000] [2002]
客户没有给我ca-cert.pem
并且凭据正确。 我想念什么?
该警告与任何证书文件无关。 要么在php.ini配置文件中未启用OpenSSL,要么您的php版本根本没有使用SSL支持进行编译,或者您使用的mysql驱动程序/ php有一个bug,例如php bug#55870 。 证书和mysql设置仅在PDO尝试通过SSL发起连接后才起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.