MySQL服务器正在运行php5.3。新的Web服务器正在运行php7.1(从php5.3迁移而来)。当我尝试使用SSL连接MySQL服务器时,它无法工作。
try {
$dbh = new PDO($dsn, $user, $password, array(PDO::MYSQL_ATTR_SSL_KEY => '/etc/mysql/client-key.pem',
PDO::MYSQL_ATTR_SSL_CERT => '/etc/mysql/client-cert.pem',
PDO::MYSQL_ATTR_SSL_CA => '/etc/mysql/ca-cert.pem')
);
echo "Connestion established";
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
连接失败:SQLSTATE[HY000] [2002]
PDO::__construct():SSL操作失败,错误代码为1。OpenSSL错误信息:error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed
但是,当我从连接中删除SSL块时,它可以正常工作。我不知道发生了什么。可能是服务器和客户端之间的版本不匹配。因为我正在使用旧的公钥和私钥。
这是因为mysql客户端和服务器版本不匹配吗?
PS:我只在web服务器中升级了php7。