Mysql接続エラー

お世話になっております。

mysqlはパッケージでインストールし、zabbixはソースからインストールしております。

mysqlのデータディレクトリを下記の様に変更したのですが、
Webアクセスすると、

Configuration file error
Error connecting to database: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

のエラーが表示され、ログを確認すると

30065:20150202:165728.022 [Z3001] connection to database 'zabbix' failed: [2002] Can't connect to local MySQL server through socket '/data/zabbix/data/mysql.sock' (2)

のエラーが表示されます。
エラー自体も整合性が取れてません。

my.cnf---------------------------
2,5c2,3
< #datadir=/var/lib/mysql
< #socket=/var/lib/mysql/mysql.sock
< datadir=/data/zabbix/data
< socket=/data/zabbix/data/mysql.sock
---
> datadir=/var/lib/mysql
> socket=/var/lib/mysql/mysql.sock
-------------------------------------
zabbix_server.conf

-------------------------------------
> DBSocket=/data/zabbix/data/mysql.sock

-------------------------------------

mysqlのdataディレクトリを変更↓場合の作業漏れ等ご指摘頂けますでしょうか?

各アプリケーションともに再起動済みで、mysqlコマンドでは接続可能です。
新ディレクトリもタイムスタンプを見ると更新がされています。

※補足ですが、SELINUXは入ってません。また、変更前は繋がっていました。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー TNK の写真

Webサーバ側は、PHPのアプリケーションですので、明示的に指定し
なければ、CentOSで標準のphpパッケージを利用していると、シス
テムのデフォルトである

 /var/lib/mysql/mysql.sock

を利用したはずです。
socketのパスを変更されたのであれば、明示的に、例えばmy.cnfで
クライアントのセクションに

----- ここから -----
[client]
socket=/data/zabbix/data/mysql.sock
----- ここまで -----

などと設定する必要があるでしょう。
他の設定方法として、PHP側で変更するなら、php.iniに、

----- ここから -----
mysqli.default_socket = /data/zabbix/data/mysql.sock
----- ここまで -----

とか、Zabbix側で変更するならzabbix.conf.phpに

----- ここから -----
$DB["SERVER"] = 'localhost:/data/zabbix/data/mysql.sock';
----- ここまで -----

などというように、どれか1つの設定方法で、変更した環境に合わ
せた設定変更を行ってください。

Zabbixサーバ側に関しては、

 /data/zabbix/data/mysql.sock

に接続できないとのことですので、ちゃんとそのソケットが生成さ
れているかを確認してください。
生成されていないのであれば、mysqldを再起動してみてください。

ソケットが生成されているにも関わらず、Zabbixサーバから接続で
きていないのであれば、再度、Zabbixサーバのプロセスを再起動し
てみてください。
再度ログを確認される際は、タイムスタンプにもご注意の上、過去
のログを参照してしまわないようにしてください。

ユーザー seryukusu の写真

有難うございます。

下記、現状の設定でして

grep sock /etc/php.ini
----------------------------
; Default timeout for socket based streams (seconds)
; http://www.php.net/manual/en/filesystem.configuration.php#ini.default-so...
default_socket_timeout = 60
; Default socket name for local MySQL connects. If empty, uses the built-in
; http://www.php.net/manual/en/mysql.configuration.php#ini.mysql.default-s...
mysql.default_socket =
; Default socket name for local MySQL connects. If empty, uses the built-in
; http://www.php.net/manual/en/mysqli.configuration.php#ini.mysqli.default...
mysqli.default_socket =
---------------------------------

grep sock /data/zabbix/www/conf/zabbix.conf.php
--------------------------------
-------------------------------- ※無

/etc/my.cnf
--------------------------------
[mysqld]
#datadir=/var/lib/mysql
#socket=/var/lib/mysql/mysql.sock
datadir=/data/zabbix/data
socket=/data/zabbix/data/mysql.sock
[client]
socket=/data/zabbix/data/mysql.sock
----------------------------------

ls -la /data/zabbix/data/mysql.sock
------------------------------------
srwxrwxrwx 1 mysql mysql 0 Feb 2 18:20 /data/zabbix/data/mysql.sock
------------------------------------

ソケットも生成されている模様です。

簡単な事の様な気がしますが、どうしてもうまくいかない為、socketのみデフォルトのパスで行く事に
しました。ご回答有難うございました。