Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php PDO连接到远程MySQL数据库_Php_Mysql_Ssl_Pdo - Fatal编程技术网

Php PDO连接到远程MySQL数据库

Php PDO连接到远程MySQL数据库,php,mysql,ssl,pdo,Php,Mysql,Ssl,Pdo,我正在尝试使用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:

我正在尝试使用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,如。只有在PDO尝试通过SSL启动连接后,证书和mysql设置才会起作用。

警告与任何证书文件无关。在php.ini配置文件中没有启用OpenSSL,或者您的php版本根本没有使用SSL支持进行编译,或者您使用的mysql驱动程序/php有一个bug,如。只有在PDO尝试通过SSL启动连接后,证书和mysql设置才会起作用。

客户没有给我ca-cert.pem
。。。意思是这是他们自己签署的证书,而不是从CA获得的证书??是的,他们自己签署了。
客户没有给我CA-cert.pem
。。。意思是这是他们自己签名的证书,而不是从CA获得的证书??是的,他们自己签名。