CDbConnection failed to open the DB connection

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
S c
Сообщения: 883
Зарегистрирован: 2012.04.11, 14:46

CDbConnection failed to open the DB connection

Сообщение S c »

Создал миграцию. Создалась успешно
Пытаюсь выполнить yiic migrate, выдает
Yii Migration Tool v1.0 (based on Yii v1.1.10)

exception 'CDbException' with message 'CDbConnection failed to open the DB connection: could not find driver' in C:\Winginx\home\framework\db\CDbConnection.php:
382
Stack trace:
#0 C:\Winginx\home\framework\db\CDbConnection.php(331): CDbConnection->open()
#1 C:\Winginx\home\framework\db\CDbConnection.php(309): CDbConnection->setActive(true)
#2 C:\Winginx\home\framework\base\CModule.php(388): CDbConnection->init()
#3 C:\Winginx\home\framework\cli\commands\MigrateCommand.php(419): CModule->getComponent('db')
#4 C:\Winginx\home\framework\cli\commands\MigrateCommand.php(427): MigrateCommand->getDbConnection()
#5 C:\Winginx\home\framework\cli\commands\MigrateCommand.php(458): MigrateCommand->getMigrationHistory(-1)
#6 C:\Winginx\home\framework\cli\commands\MigrateCommand.php(75): MigrateCommand->getNewMigrations()
#7 [internal function]: MigrateCommand->actionUp(Array)
#8 C:\Winginx\home\framework\console\CConsoleCommand.php(141):
ReflectionMethod->invokeArgs(Object(MigrateCommand), Array)
#9 C:\Winginx\home\framework\console\CConsoleCommandRunner.php(65): CConsoleCommand->run(Array)
#10 C:\Winginx\home\framework\console\CConsoleApplication.php(91): CConsoleCommandRunner->run(Array)
#11 C:\Winginx\home\framework\base\CApplication.php(162): CConsoleApplication->processRequest()
#12 C:\Winginx\home\framework\yiic.php(33): CApplication->run()
#13 C:\Winginx\home\my_site\public_html\protected\yiic.php(7): require_once('C:\Winginx\home...')
#14 {main}

Сижу на winginx

В чем может быть проблема?
Аватара пользователя
kmddm
Сообщения: 122
Зарегистрирован: 2010.06.10, 15:41

Re: CDbConnection failed to open the DB connection

Сообщение kmddm »

1. Фронт я так понял работает норм?
2. В конфиге console.php указали правильные настройки?
Платформа для создания интернет магазинов на Yii - EximusCommerce
yii-admin - автоадминка для любимого фреймворка. https://github.com/firstrow/yiiadmin
Write, share and run php code from browser http://php-fu.com
Аватара пользователя
S c
Сообщения: 883
Зарегистрирован: 2012.04.11, 14:46

Re: CDbConnection failed to open the DB connection

Сообщение S c »

да, нормально
Последний раз редактировалось S c 2012.07.27, 14:12, всего редактировалось 1 раз.
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: CDbConnection failed to open the DB connection

Сообщение yiijeka »

Так в чём может быть проблема?

UPD
Сам и отвечаю ))) Хоть фронт и работал, командная строка yiic migrate отказывалась.
Кроме того что нужно настроить console.php в конфигурации, ещё нужно в php.ini подключить PDO ....(бл%%ь полдня с этим отмучался)
Аватара пользователя
S c
Сообщения: 883
Зарегистрирован: 2012.04.11, 14:46

Re: CDbConnection failed to open the DB connection

Сообщение S c »

я не помню точно. у меня по моему проблемы были с тем, что на компе было несколько пхп (от денвера и от winginx) и в переменных средах был указан не тот что нужен
Аватара пользователя
lancecoder
Сообщения: 2532
Зарегистрирован: 2012.06.26, 17:16

Re: CDbConnection failed to open the DB connection

Сообщение lancecoder »

они еще бывают cgi и cli ))
cp /etc/php5/cgi/php.ini /etc/php5/cli/
grendel
Сообщения: 6
Зарегистрирован: 2013.02.08, 21:47

Re: CDbConnection failed to open the DB connection

Сообщение grendel »

Можно подробнее про пути решения? Сам столкнулся с подобной проблемой, но ничего толком не могу вынести из того, что здесь написано. Пытаюсь проверить написанный для скрипт для cron, ничего не выходит. Пользуюсь денвером, запускаю пхп из C:\WebServers\usr\local\php5
php.exe -m выводит, что PDO работает

upd. вывод phpinfo() -> секция PDO:

PDO
PDO support => enabled
PDO drivers =>

upd2. нашел тему на стаковерфлоу http://stackoverflow.com/questions/7086 ... s-no-value - помог совет переименовать путь extension_dir в php.ini на абсолютный.
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: CDbConnection failed to open the DB connection

Сообщение yiijeka »

Смените уже этот древний денвер на обычный php 5.4. Т.к. с денвер эти вопросы уже задрали. У вас денвер хранит php.ini в другом месте где положено. Запуская phpinfo - денвер его видит. Запуская миграции вы запускаете не денвер, а php.exe - который не знает куда этот чёртов денвер засунул php.ini и ругается на вас и на весь белый свет.

РЕШЕНИЕ: УСТАНОВИТЕ php 5.4. настройте его как вам нужно, чтобы php.ini лежало в его папке. И пропишите в PATH свой php.exe - который php 5.4. Теперь все консольные программы будут запускайться от php 5.4
melyfaro
Сообщения: 34
Зарегистрирован: 2012.04.14, 14:52

Re: CDbConnection failed to open the DB connection

Сообщение melyfaro »

А как быть с этой проблемой на Mac OS ? понятно, что сервер MAMP имеет свои настройки а запуск PHP свои, но я не пойму как настроить на MAC PDO
melyfaro
Сообщения: 34
Зарегистрирован: 2012.04.14, 14:52

Re: CDbConnection failed to open the DB connection

Сообщение melyfaro »

Долго копаясь нашел причину нужно сделать так : (p.s. у меня MAMP) mysql:dbname=yiicms;unix_socket:/Applications/MAMP/tmp/mysql/mysql.sock;
Причем dbname впереди, иначе не работает
flam
Сообщения: 129
Зарегистрирован: 2011.04.10, 11:23

Re: CDbConnection failed to open the DB connection

Сообщение flam »

Облегчу задачу тем, кто использует одну из новых версий open-server.
Столкнулся я с такой же ошибкой, перепроверил и перепробовал 100500 способов решения из интернетов! Ничего не помогало, пока не наткнулся на эту статью про laravel
http://tarlyun.com/blog/2012/08/18/nast ... s-laravel/
(часть про симлинк решает проблему)
lanket
Сообщения: 10
Зарегистрирован: 2013.11.27, 23:25

Re: CDbConnection failed to open the DB connection

Сообщение lanket »

Замучился воевать с такой же проблемой.
FrontEnd работает все ОК. Консоль выдает такуюже ошибку.

Гуглил, гуглил так и ненагуглил. У всех либо PDO не включен, либо забывают Yii консоль настроить. У меня вроде все сделанно но не работает.

Машинка: ubuntu LAMP

Замучился пробовать, вроде все ОК и вроде все правельно но не работает.

в /etc/php5/apache2/conf.d/ и в /etc/php5/cli/conf.d/ присутствуют pdo.ini со строчкой extension=pdo.so и pdo_mysql.ini с нужным содержанием extension=pdo_mysql.so

теоритечески нечего не мешает работать, все настроенно. А по факту ошибка.

/protected/config/main.php

Код: Выделить всё

        'db'=>array(
            'connectionString' => 'mysql:host=localhost;dbname=wincalc',
            'emulatePrepare' => true,
            'username' => 'root',
            'password' => '1234',
            'charset' => 'utf8',
        ),
 
/protected/config/cansole.php

Код: Выделить всё

        'db'=>array(
            'connectionString' => 'mysql:host=localhost;dbname=wincalc',
            'emulatePrepare' => true,
            'username' => 'root',
            'password' => '1234',
            'charset' => 'utf8',
 
phpinfo
PDO
PDO support enabled
PDO drivers mysql

pdo_mysql
PDO Driver for MySQL enabled
Client API version 5.5.34

Directive Local Value Master Value
pdo_mysql.default_socket /var/run/mysqld/mysqld.sock /var/run/mysqld/mysqld.sock
На всякий случай тект ошибки
exception 'CDbException' with message 'CDbConnection failed to open the DB connection: could not find driver' in /hdd/a/skvnet/fw/db/CDbConnection.php:381
Stack trace:
#0 /hdd/a/skvnet/fw/db/CDbConnection.php(330): CDbConnection->open()
#1 /hdd/a/skvnet/fw/db/CDbConnection.php(308): CDbConnection->setActive(true)
#2 /hdd/a/skvnet/fw/base/CModule.php(387): CDbConnection->init()
#3 /hdd/a/skvnet/fw/base/CApplication.php(438): CModule->getComponent('db')
#4 /hdd/a/skvnet/fw/db/ar/CActiveRecord.php(623): CApplication->getDb()
#5 /hdd/a/skvnet/fw/db/ar/CActiveRecord.php(2309): CActiveRecord->getDbConnection()
#6 /hdd/a/skvnet/fw/db/ar/CActiveRecord.php(387): CActiveRecordMetaData->__construct(Object(TablAllKlient))
#7 /hdd/a/skvnet/fa/protected/models/TablAllKlient.php(27): CActiveRecord::model('TablAllKlient')
#8 /hdd/a/skvnet/fa/protected/commands/SendsmstoallcalledCommand.php(33): TablAllKlient::model()
#9 /hdd/a/skvnet/fw/console/CConsoleCommandRunner.php(67): SendsmstoallcalledCommand->run(Array)
#10 /hdd/a/skvnet/fw/console/CConsoleApplication.php(91): CConsoleCommandRunner->run(Array)
#11 /hdd/a/skvnet/fw/base/CApplication.php(169): CConsoleApplication->processRequest()
#12 /hdd/a/skvnet/fw/yiic.php(33): CApplication->run()
#13 /hdd/a/skvnet/fa/protected/yiic.php(7): require_once('/hdd/a/skvoznik...')
#14 {main}root@lanket-air:/var/a/skvnet/fa/protected#
смущает результат команды в консоле php -m
а именно отсутствие pdo_mysql. Хотя по настройкам должон быть.
[PHP Modules]
Core
ctype
date
dom
ereg
fileinfo
filter
hash
iconv
json
libxml
pcre
PDO
pdo_sqlite
Phar
posix
Reflection
session
SimpleXML
SPL
SQLite
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter

[Zend Modules]
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: CDbConnection failed to open the DB connection

Сообщение yiijeka »

ubuntu LAMP использует может свой ini настройки, а консоль запускает непосредственно из папки php. Ламп вы настроили, а вот родной ini так и остался без включённого.
lanket
Сообщения: 10
Зарегистрирован: 2013.11.27, 23:25

Re: CDbConnection failed to open the DB connection

Сообщение lanket »

yiijeka писал(а):ubuntu LAMP использует может свой ini настройки, а консоль запускает непосредственно из папки php. Ламп вы настроили, а вот родной ini так и остался без включённого.
Спасибо за ответ. Но я немного недогоняю.
Вроде как в убунте все инишки в /etc/....

Если в случае php как то по другому то где тогда воляется "родной ini"?

я так понял, исходя из гугления, что инишка для консоли находиться в /etc/php5/cli/php.ini .

А где тогда его инишка?

Заранее спасибо.
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: CDbConnection failed to open the DB connection

Сообщение yiijeka »

в консоле Там есть строчка

Код: Выделить всё

Loaded Configuration File => C:\php\php.ini
это ини, который использует консоль. Потом на фронтенде введите

Код: Выделить всё

phpinfo(); 
и там Loaded Configuration File Z:\usr\local\php5\php.ini может быть другой...
lanket
Сообщения: 10
Зарегистрирован: 2013.11.27, 23:25

Re: CDbConnection failed to open the DB connection

Сообщение lanket »

Спасибо за помощь.
Выручили.
Аватара пользователя
Neuromance
Сообщения: 716
Зарегистрирован: 2011.09.06, 13:04

Re: CDbConnection failed to open the DB connection

Сообщение Neuromance »

Столкнулся с такой же проблемой.
phpinfo() выдаёт Loaded Configuration File /etc/php5/apache2/php.ini

php -i | grep -i Loaded
Loaded Configuration File => (none)

Помогите пожалуйста) Как сделать так , чтобы cli подхватывал нужный конф.файл?
Ответить