database.phpとDB接続

現象

CodeIginiterからデータベースへの接続ができない…
config/database.php

$db['default']['autoinit'] = TRUE;

とすると以下のエラー。


$db['default']['autoinit'] = FALSE;

とすると、エラーは出ないが

$this->load->database();

の戻り値がFALSE。


うーむ。。。

原因

MySQLのドライバーを調べて見ることに。

system/database/drivers/mysql/mysql_driver.php

この中で、
「db_connect」
というメソッドがあって、そこで

return @mysql_connect($this->hostname, $this->username, $this->password, TRUE);

…となっていたので、とりあえずこの@を外してみた。
そうすると、どういうことが問題になっているかが明確に。

ほぼ、この件と同じということが分かった。

対処方法

Macのphp.iniを編集することに。
php.iniすらなかったので、/etc/php.ini.defaultからコピーしてphp.iniを作成。

mysql.default_socket = /tmp/mysql.sock

を追記して、Apacheを再起動。

sudo apachectl graceful