chat-blog

僕の独り言が誰か一人の役に立つことを祈って

*

【Zabbix】セットアップ中に、Error connecting to database: No such file or directoryが出たときの対処法

   

検証でzabbix3.0のインストールをしていて何度かハマったので残しておきます。

PR

事象

Zabbixをインストールした直後、ブラウザからセットアップしてて、
Configure DB connection
の最中に、
Error connecting to database: No such file or directory

表示されてしまう。

mysqlもzabbix-serverも上がってるはずなのに・・・

原因

Zabbix(正確にはPHP)が
mysql.sock
を見つけることが出来ずに、発生している。
mysqlが吐き出しているmysql.sockの場所と、
PHPが探しに行くmysql.sockの場所が一致していないという。

そりゃプロセスは上がっててもお互いが認識していないんじゃ何も意味がない。思いはしっかり伝えなければ。

/etc/my.cnfの内容確認

というわけでまずは
/etc/my.cnf
を確認してみる。
すると、

と書かれている。

php.iniの内容確認

次に、
php.ini
を確認してみる。

みっつも設定するっぽそうな項目がある。
そして何も設定されていない。
「デフォルトどこになってるんだろう」って話ですが、
どうやってコンパイルしたかによります。
だいたい、
/tmp/mysql.sock
とかになってるんじゃないでしょうか。

※php -i を上手いことgrepすれば確認できると思います。

なるほど、それぞれが違う場所を見に行ってるようだ

つまり、mysql側での設定で、
socketが、
/var/lib/mysql/mysql.sock
に吐かれてるのに対し、
PHP側では、
/tmp/mysql.sock
を見に行っているため、PHPがDBを見つけることができてない状態というわけです。

解決方法は2パターン

お察しかもしれませんが、

  • mysql側のconf(my.cnf)をPHP側に合わせる
  • PHP側のconf(php.ini)をmysql側に合わせる

です。
他にアプリケーションが動いたりしていないのであれば本当にどっちでもいいと思います。

ちなみにphp.iniだとそれっぽい項目が3つあったけど、どれを変えればいいの?

試してみた結果、
; mysqli.default_socket =
を変えれば上手くいきました。
こんな感じに。

が、もしやってみて駄目だったら3つに同じパスを書いてあげれば間違いないと思います。

mysql側を変更したらmysqldの再起動、
php側を変更したらapacheの再起動を忘れずに。

そんな感じです。

今日の一言

昔zabbixって名前かっけーなーって思ってました。

スポンサーリンク

スポンサードリンク

スポンサードリンク

最後まで見ていただきありがとうございます。
今後とも頑張って更新していきますのでもしよろしければ
下記お一つでもシェアしていただけると幸甚です。
Facebookでシェア Twitterでシェア はてなブックマーク LINEで送る

 - 技術系

\皆によく読まれてる人気記事/

スポンサーリンクと関連コンテンツ

  関連記事

Apache2.4からDefault Typeディレクティブの指定がほぼ無意味になった

Apache2.4の設計をしていて、 「ほええええ」って思ったことがあったのでメ …

RubygemsをLinuxサーバにソースから3分でインストールする方法

railsアプリが動く環境を構築する上でrubyとrubygemsをインストール …

馬鹿でもできた、CentOs6(仮想)にOracle12cをインストールする手順

とても反感を喰らいそうな題名ですが許してください。 先日、「へーOracle12 …

【python】unlessがないのでnotを使う

僕はperlを書いてて「偽のときだけの処理」を書くときよくunlessを使うので …

xcode6をvimライクにした。

まいど。つい先程からxcodeのswiftの勉強をし始めましたチャットです。 そ …

【Linux】resolv.confの設定でドメイン部分を補完してくれる件

ふと気になったことを調べた時の備忘録です。

【Ansible】linuxのコマンド実行結果を元に処理をわけたい

nfsをマウントさせるときにサーバ上のmountのバージョンが古いとansibl …

【GIT】Masterブランチをcloneして別ブランチをローカルで作ってpushする

ふとMasterをcloneしてきて動作検証してる中で書き換えたりしちゃって、 …

ブログをgoogleとbingにインデックスさせた(申請した)

ブログを立ち合げたわけだしせっかくなので、 検索エンジンに引っかかるようにしたい …

【Ansible】複数のリスト(配列)をループさせて全パターンを網羅する方法

いわゆるnested loopをAnsibleでって話です。配列同士を入れ子にし …

※コメントですが僕が確認してからとなるのでだいたい3日後の反映となります。

Message

メールアドレスが公開されることはありません。