CakePHP2.1でMySQL接続
ちょっとハマッたのでメモ。
CakePHPのセット
$ chmod -R 777 app/tmp/
$ vi app/Config/core.php
Configure::write('Security.salt', 'new Security.salt');
$ vi app/Config/core.php
Configure::write('Security.cipherSeed', 'new Security.cipherSeed');
$ cp app/Config/database.php.default app/Config/database.php
$ vi app/Config/database.php
public $default = array( 'datasource' => 'Database/Mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'letitride', 'password' => '********', 'database' => 'mydb', 'prefix' => '', //'encoding' => 'utf8', );
を編集。ブラウザから確認。。。
Database connection "Mysql" is missing
Cake is NOT able to connect to the database.
Database connection "Mysql" is missing, or could not be created.
ID / PASS database名共に誤りはない。。。
試しにpostgreSQLにつないで見ると、正常に繋がる。
PDO、入ってるはずだけどな。。。
# php -i|grep PDO
PDO PDO support => enabled PDO drivers => pgsql, sqlite PDO Driver for PostgreSQL => enabled PDO Driver for SQLite 3.x => enabled
Oh...
PDO MySQL 拡張モジュールをインストール
# yum --enablerepo=remi install mysql-devel
# pecl install pdo_mysql
# vi /etc/php.d/pdo.ini
extension=pdo.so extension=pdo_mysql.so
# /etc/init.d/httpd reload
# php -i|grep PDO
PDO PDO support => enabled PDO drivers => mysql, pgsql, sqlite PDO Driver for MySQL, client library version => 5.5.22 PDO Driver for PostgreSQL => enabled PDO Driver for SQLite 3.x => enabled
まとめ
- Cake2.0 からPDOが必要。
- 先ずはPDO入っているか確認
- PDOが入っていてもmysqlドライバが入ってない可能性あり