我有一个远程MySQL服务器,需要我使用SSL进行连接。 我可以使用我的terminal连接到它。 但是当我尝试使用PHP连接到它时,出现以下错误:
SSL3_GET_RECORD:wrong version number
看起来像OPENSSL握手失败,原因可能是我的PHP试图使用SSL3连接到它。 MySQL服务器仅支持TLSv1.2。 有没有办法强制PHP使用TLSv1.2连接?
这是我用来连接的代码:
<?php ini_set ('error_reporting', E_ALL); ini_set ('display_errors', '1'); error_reporting (E_ALL|E_STRICT); $db = mysqli_init(); mysqli_options ($db, MYSQLI_OPT_SSL_VERIFY_SERVER_CERT, true); $db->ssl_set(NULL, NULL, '/path/to/ca-cert.pem' , NULL, NULL); $link = mysqli_real_connect ($db, 'hostname', 'user', 'password', 'dbname', 3306, NULL, MYSQLI_CLIENT_SSL); if (!$link) { die ('Connect error (' . mysqli_connect_errno() . '): ' . mysqli_connect_error() . "\n"); } else { $res = $db->query('SHOW TABLES;'); print_r ($res); $db->close(); } ?>
我已经尝试过的事情和可能的问题:
所以,总之,帮助!