2015年7月24日金曜日

予期せぬエラーが発生した。 SQLSTATE[HY000] [2002] No such file or directory

2015.07.24(金) 

1. 先ず、mysql を調べてみる。 
$mysql 
dyld: Library not loaded: @@HOMEBREW_CELLAR@@/openssl/1.0.2d_1/lib/libcrypto.1.0.0.dylib 
Referenced from: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib 
Reason: image not found 
Trace/BPT trap: 5 

2. libssl.1.0.0.dylib の存在を PropEdit を使って確かめたところ以下の通り両者とも同じものが存在している。 
/usr/local/Cellar/openssl/1.0.2d_1/lib/libssl.1.0.0.dylib 
/Volumes/Time Machine/Backups.backupdb/kMB-A/2015-07-23-203248/Macintosh HD/usr/local/Cellar/openssl/1.0.2d_1/lib/libssl.1.0.0.dylib 

3. libssl.1.0.0.dylib 自体はインストールされているが、openssl が機能していないため見つからないのではないか。 
$brew link openssl --force
Linking /usr/local/Cellar/openssl/1.0.2d_1... 1548 symlinks created 

4. 再度、mysql を調べてみる。 
openssl が機能し libssl.1.0.0.dylib をロードすることが出来た。 
新たに /tmp/mysql.sock を通してサーバに接続できないという EPPOR が出る。 

$mysql 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 

5. 先ず、my.cnf の所在を確かめる。 
$mysql --help | grep my.cnf
order of preference, my.cnf, $MYSQL_TCP_PORT, 
/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf 

6. /etc/my.cnf の中の mysql.sock 指定を確かめる。 
今まで通りである。 
[mysqld]
socket = /tmp/mysql.sock 
[client] 
socket = /tmp/mysql.sock 

7. 今まで mysql では、この mysql.sock 指定で通信していた。 
PHPでは /var/lib/mysql/mysql.sock に接続しに行こうとしているのではないか。 

8. そこで更に、クライアント側からのソケット場所も指定する。
/private/etc/my.cnf に以下を追加。 
[client]
socket=/var/lib/mysql/mysql.sock 
[mysqld] 
socket=/var/lib/mysql/mysql.sock 

9. mysql を起動してみる。 
$mysql.server restart
ERROR! MySQL server PID file could not be found! 
Starting MySQL 
.. SUCCESS! 
11:08 AM kojiMacBook-Air:~ 

結果::成功 
以下のサイトが表示された。
http://www.kojimat.ddo.jp/concrete5.7.4/ 

0 件のコメント:

コメントを投稿