У меня проблема с Yii и база данных mysql, работающая на Google Cloud sql.
Краткая информация:
Мы переместили это с существующего сервера, на котором все работало без каких-либо проблем, и теперь настроили сервер Google Compute Engine с php и всеми остальными драйверами mysql_pdo, являющимися одним из них. У нас также есть база данных Google Cloud SQL, в которой хранится вся наша существующая информация о базе данных.
Что я пробовал
Я написал простой php-скрипт, который использует PDO('mysql:<IPADDRESS>;dbname=<MYDBNAME>,'MYUSERNAME','MYPASSWORD');
и это прекрасно соединяется и может читать таблицы и возвращать данные.
Проблема
Как только я сделаю то же самое в yii в config / main.php, он, похоже, не работает и получает ошибку: CDbConnection не удалось открыть соединение с БД: не удалось найти драйвер
Вот строка подключения yii
'db'=>array( 'connectionString' =>'mysql:host=my.server.ip.address;dbname=my_db_name', 'emulatePrepare' => true, 'username' => 'my_username', 'password' => 'my_passsword', 'charset' => 'utf8', ),
Я также запускаю сценарий требований yii, и он возвращает все, что передается для функций PDO mysql.
Любая помощь будет принята с благодарностью.
Благодаря,
Ага отвечает на мой вопрос:
Сервер должен иметь расширение sqlite PDO, а также расширение MySQL PDO. И теперь все работает отлично!
Так что стоит проверить phpinfo для этого
Вы можете добавить его в соответствии с этим ответом: https://superuser.com/a/320914
или с помощью вашего расторжения php.ini:
extension=php_pdo_sqlite.dll extension=php_sqlite.dll
Надеюсь, это поможет другим людям
'db'=>array( 'class' => 'CDbConnection' , 'connectionString' => 'mysql:host=127.0.0.1;dbname=dinnerway', 'username' => 'root', 'password' => 'QbtL0M33saMV9hO6', 'charset' => 'utf8', 'tablePrefix' => 'mt_', )
// удалить "'emulatePrepare' => true,"
это сработало для меня.