2016-01-04 5 views
1

Я пытаюсь подключиться к удаленному MySQL db с помощью PHP. Предполагалось, что это простая задача, но я новичок в PHP, это плохо. Я получил ключ-cert.pem, client-cert.pem, имя хоста и учетные данные. Я копирую один из примеров по всему Интернету, и это то, что я сделал:PDO подключение к удаленному MySQL db

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 и учетные данные верны. Что мне не хватает?

+0

'Клиент не дает мне ca-cert.pem' ... что означает, что это сертификат, который они подписали, а не получили от CA? – developerwjk

+0

Да, они сами подписались. – Francesco

ответ

0

Предупреждение не имеет никакого отношения к каким-либо файлам сертификатов. Либо OpenSSL не включен в файле конфигурации php.ini, либо ваша версия php не была скомпилирована с поддержкой SSL вообще, или у используемого вами драйвера mysql/php есть ошибка, например php bug #55870. Сертификаты и настройки mysql войдут в игру только после того, как PDO попытается инициировать соединение через SSL.

Смежные вопросы