参考にさせていただいたページ(主立ったところ)
bakeによる高速開発(5/8):初心者のためのCakePHP2.0 プログラミング入門
Warning Error: PDO::__construct(): [2002] No such file or directory・・・ | HAPPY*TRAP
【php】MySQLに接続するときにエラー発生 at softelメモ
参考にさせていただいたページ(一応控えておきたいリンク)
Mac10.8.3 cakePHPとMySQLの連動エラーの対応(XAMPP使用時) - Logicky Blog
php - cake console 2.2.1: Bake errors - Stack Overflow
環境
インタラクティブBakeシェルで、「M」を入力
./cake bake
を実行
M
を入力してenter
データベース設定を選択したらエラーが出た
Use Database Config: (test/default)
[test] >
で、default
を入力してenterを押下したら以下のようなエラーが出た。
Warning Error: PDO::__construct(): [2002] No such file or directory (trying to connect via unix:///var/mysql/mysql.sock) in [/Users/motomichishigeru/Desktop/all/git_repos_all/bitbucket/motomichi_mti/bp_20140708/0003-cakephp/bake/lib/Cake/Model/Datasource/Database/Mysql.php, line 184]
Error: Database connection "Mysql" is missing, or could not be created.
php.iniとmy.cnfと*.sockを探す
【php】MySQLに接続するときにエラー発生 at softelメモ
によると、php.iniまたはmy.cnfを設定することで解決できるらしい。
Warning Error: PDO::__construct(): [2002] No such file or directory・・・ | HAPPY*TRAP
によると、シンボリックリンクの作成により解決できるらしい。
たぶんこのあたりだろうと思う。
- php.ini
- my.cnf
- *.sock
を探してみる。
vagrant ssh
su
vagrant(パスワード)
cd /
find ./ -name "php.ini"
find ./ -name "my.cnf"
find ./ -name "*.sock"
実行結果として以下のように出力された。
php.iniのある場所
./etc/php.ini
my.cnfのある場所
./usr/my.cnf
mysql.sockのある場所
./var/lib/mysql/mysql.sock
シンボリックリンクの作成をしてみたけど解決しなかった
まずvarの中にmysqlディレクトリを作成した。
cd /var/
mkdir mysql
次に以下のコマンドでシンボリックリンクを作成した。
ln -s /var/lib/mysql/mysql.sock /var/mysql/mysql.sock
suでログインしているので、sudoはいらない。
この段階で
service httpd restart
とか
/etc/init.d/mysql restart
でapacheとmysqlを再起動してみたけど、解決しなかった。
my.cnfを編集してみたけど解決しなかった
【php】MySQLに接続するときにエラー発生 at softelメモ
を参考に
[client]
password = password
port = 3306
socket = /var/lib/mysql/mysql.sock
[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
みたいな感じで書いてみたけど、駄目だった。
php.iniを編集してみたけど解決しなかった
同じく
【php】MySQLに接続するときにエラー発生 at softelメモ
を参考に
mysql.default_socket="/var/lib/mysql/mysql.sock"
と
mysqli.default_socket = "/var/lib/mysql/mysql.sock"
と
pdo_mysql.default_socket="/var/lib/mysql/mysql.sock"
をそれぞれ記述してみたけど駄目だった。
それから
CakePHP開発用簡易環境構築メモ - ryhmrtの日記
を参考に
cgi.fix_pathinfo=1
も記述してみたけど駄目だった。
仮想環境にsshログインして、./cake bakeしてみる
ホストマシンの方で./cake bakeしてるから駄目なのかな?と思って、仮想環境内でやってみた。
cd /var/www/html/bake/app/Console/
それから
./cake bake
したら
bash: ./cake: 許可がありません
と表示された。
chemod 755 cake
としてみたけど、改善されない。
一旦諦めよう
./cake bakeでパパッと作るのやってみたかったけど、一旦諦めることにする。
bake使わなくても作れるしな。
vagrant使ってるからかなぁ?
本番サーバーでやったりしたらなんか上手くいくかもしれないし。
色々調べてみたけど駄目だった。
そのうちわかるときが来ますように。
今回はここまで。