Не удается подключиться к PDO с помощью ssl, но mysqli с помощью ssl works

Мы настроили mysql с помощью SSL, создав сертификаты, обновив my.cnf, создав пользователям правильные права и требуя ssl, перезапустив службу и проверив, что она работает на стороне сервера и на стороне клиента (через командную строку mysql), подключая удаленно. Я также проверил, что PDO работает правильно с той же самой настройкой, но отключив «require ssl» в учетной записи пользователя в mysql, потому что он просто терпит неудачу и использует не-ssl-соединение.

Однако при использовании приложения PHP для его соединения не работает с использованием PDO, принудительно использующего ssl, но работает с использованием mysqli с помощью ssl. Я думал, что они используют одни и те же драйверы, и оба должны работать нормально. Сообщение об ошибке, которое я получаю, это «Не удалось подключиться к базе данных [SQLSTATE [28000] [1045] Доступ запрещен для пользователя», но пользователь существует, и это соединение работает с mysqli (force ssl), и соединение работает для PDO, только если я удаляю ' требуется ssl 'от пользователя в mysql.

php 5.5.9 CentOS release 6.5 (окончательный) pdo_mysql 5.5.31

Сообщите мне, могу ли я предоставить дополнительную информацию. Ниже приведены примеры подключения,

//mysqli $conn=mysqli_init(); mysqli_ssl_set($conn, $clientkey, $clientcert, $sharedca, NULL, NULL); if (!mysqli_real_connect($conn, $host, $user, $pass, $db)) { die("Failed connecting to ssl mysql via mysqli"); } $res = mysqli_query($conn, "SHOW STATUS like 'Ssl_cipher'"); print_r(mysqli_fetch_row($res)); mysqli_close($conn); //pdo $options = array_merge($options, array( PDO::MYSQL_ATTR_SSL_KEY => $sslkey, PDO::MYSQL_ATTR_SSL_CERT => $sslcert, PDO::MYSQL_ATTR_SSL_CA => $sslca, )); try { $pdo = new PDO("mysql:dbname={$db};host={$host}", $user, $pass, $options); } catch( PDOException $e ) { die("Failed connecting"); } 

Есть ли что-нибудь, что я должен знать о том, как правильно подключиться с помощью протокола SSL с PDO? Или я вынужден переключиться на mysqli, потому что поддержка PDO для SSL может быть проблематичной?

Благодарю.

Следующий код поможет решить вашу проблему,
новый PDO ('mysql: host ='. HOST. '; dbname ='. DBNAME. '; charset = utf8', USER, PASSWORD, array (PDO :: MYSQL_ATTR_SSL_KEY => '/ mysqlsslcertificate1 / client-key.pem', PDO :: MYSQL_ATTR_SSL_CERT => '/ mysqlsslcertificate1 / client-cert.pem', PDO :: MYSQL_ATTR_SSL_CA => '/ mysqlsslcertificate1 / ca-cert.pem'));