如何修复“mysqli::real_connect(): SSL operation failed"错误?

2022-01-07 00:00:00 ssl openssl php mysql

环境:Ubuntu 14.04、PHP 5.5.9、MYSQL 5.6.30

Environment: Ubuntu 14.04, PHP 5.5.9, MYSQL 5.6.30

我不时收到错误

mysqli::real_connect(): SSL 操作失败,代码为 1.OpenSSL

mysqli::real_connect(): SSL operation failed with code 1. OpenSSL

错误消息:

错误:1408F10B:SSL 例程:SSL3_GET_RECORD:版本号错误

error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number

Front/nginx 在一台服务器上,而 mysql 在另一台服务器上.

Front/nginx is on one server and mysql is on a different server.

错误不是连续的,它是随机发生的,我在错误日志中找到了这些错误消息,所以我无法真正进行全面调试.

The error is not continuous, it happens randomly and I find those error messages in error log so I cannot really do full debug.

示例:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$this->objMySqli = mysqli_init();
mysqli_options ($this->objMySqli, MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, true);

$this->objMySqli->ssl_set($this->SslKey, $this->SslCertificate, $this->SslCACertificate, null, null);

$link = $this->objMySqli->real_connect($this->Server, $this->Username, $this->Password, $this->Database, $this->Port);      

if (!$link) {
    throw new QMySqliDatabaseException("Unable to connect to Database", -1, null);
}

SSL 密码:

在这条线上失败了:

$link = $this->objMySqli->real_connect($this->Server, $this->Username, $this->Password, $this->Database, $this->Port);

推荐答案

mysql 5.6.30版本有问题,我已经更新到 5.6.32,现在这个错误不再发生了.

It is problem with mysql version 5.6.30, I have updated to 5.6.32 and now this error is not happening anymore.

相关文章