RUDE

Как подключить базу данных Mysql через SSL в php?

У меня есть приложение YII 1. И я пытаюсь подключиться к базе данных Azure.

Я могу подключиться к базе данных Azure, если отключу параметр: Принудительное подключение SSL

Но, конечно, я хочу включить эту опцию.

Но если я включу эту опцию. Я получаю эту ошибку:

CDbConnection failed to open the DB connection: SQLSTATE[HY000] [9002] SSL connection is required. Please specify SSL options and retry.

CWebUser.php(146)

134 
135     /**
136      * PHP magic method.
137      * This method is overridden so that persistent states can be accessed like properties.
138      * @param string $name property name
139      * @return mixed property value
140      */
141     public function __get($name)
142     {
143         if($this->hasState($name))
144             return $this->getState($name);
145         else
146             return parent::__get($name);
147     }
148 
149     /**
150      * PHP magic method.
151      * This method is overridden so that persistent states can be set like properties.
152      * @param string $name property name
153      * @param mixed $value property value
154      * @throws CException
155      */
156     public function __set($name,$value)
157     {
158         if($this->hasState($name))

И мой main.php выглядит так:

'db'=> [
            'pdoClass' => 'NestedPDO',
            'connectionString' => 'mysql:host=host_name;dbname=db_name',
            'emulatePrepare' => true,
            'username' => 'user',
            'password' => 'password',            
            'charset' => 'utf8',
            'enableProfiling'=>true,
        ],
        'cache'=>[
            'class'=>'system.caching.CDbCache',
        ],

Итак, мой вопрос: чего не хватает в этой части конфигурации?

Спасибо

если я попробую так:

'db'=> [
            'pdoClass' => 'NestedPDO',
            'connectionString' => 'mysql:host=host_name;dbname=db_name',
            'emulatePrepare' => true,
            'username' => 'user',
            'password' => 'password',            
            'charset' => 'utf8',
            'enableProfiling'=>true,      
         'attributes' =>[                       
                PDO::MYSQL_ATTR_SSL_CA => 'path ssl'
            ]

Я получаю эту ошибку:

CDbConnection failed to open the DB connection: SQLSTATE[HY000] [2002] (trying to connect via (null))

и в mysql workbrench, если я проверю сертификат ssl, я получу успешный ответ.


31
1

Ответ:

Решено

CDbConnection failed to open the DB connection: SQLSTATE[HY000] [2002] (trying to connect via (null))

Как предложил ириска, добавление комментария в качестве ответа на вики сообщества, чтобы помочь членам сообщества, которые могут столкнуться с похожей проблемой.

Ошибка устранена после добавления PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT => false согласно Как использовать SSL в объектах данных PHP (PDO) mysql