DB接続のあるページでの症状だとすると、正しいソケット接続指定しているコードと、そうでないコードが混在しているために発生していると思われます。DBへの接続方法を揃えるように修正することで解決できると思います。DB接続設定ファイルConfig/database.php
も確認してみてください。
下記のソケットファイルの場所確認
も行って、MySQLの設定(/etc/my.cnf
or /var/lib/mysql/my.cnf
)、php.ini
の設定、CakePHP
のDB設定もすべて揃えるように修正を行います。
また、MySQLへの接続方法には、ソケットで接続を行う方法の他に、TCP 3306番ポート
を使って接続する方法もあります。
サーバー環境に左右されにくいので変更が面倒でなければ、TCP接続が良いと思います。(個人的に馴染んでいるだけが理由かもしれませんが)記憶が定かではありませんが、コンパイルインストールするとソケットファイルは/var/lib/mysql/mysql.sock
がデフォルトだった気がします。
ちなみに、ソケットは普通のファイルではないので、touch /var/lib/mysql/mysql.sock
のように作成してはいけません。普通のファイルはレギュラーファイル
と呼ばれ、ソケットはソケットファイル
と呼ばれます。
SSHなどのターミナルで下記のようなコマンドを実行すると、ファイル名の後に=
と表示されるファイルはソケットファイルです。
bash
1ls -lF /tmp/ /var/run
ソケットファイルの場所確認
普通、MySQLをパッケージからインストールした場合は、ソケットファイルは/tmp/mysql.sock
にあります。ソケットファイルを確認するにはMySQLにログインして、下記SQLコマンドを実行してみてください。
sql
1SHOW VARIABLES LIKE 'sock%';
下記は、私の環境での実行結果です。
+---------------+-----------------+
| Variable_name | Value |
+---------------+-----------------+
| socket | /tmp/mysql.sock |
+---------------+-----------------+
1 row in set (0.00 sec)
ターミナルで下記コマンドを実行して実際のファイルパスを確認してみます。
bash
1ls -lF /tmp/mysql.sock
2
3#---- ↓実行結果↓ ----
4srwxrwxrwx 1 mysql mysql 0 Dec 19 17:03 /tmp/mysql.sock=
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/19 13:24
2017/12/19 21:01
2017/12/19 21:23
2017/12/21 09:49
2017/12/21 10:38
2017/12/22 05:10
2017/12/22 10:37