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って名前かっけーなーって思ってました。


スポンサーリンク

スポンサードリンク

スポンサードリンク

 - 技術系

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

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

  関連記事

【Swift・X-Code】terminating with uncaught exception of type NSExceptionが出た時に確認するところ

ビルドは通ったのにエミュレーターが起動したときに起こるやつです。

【Python】3分でMacをmecabが使える環境に整える

形態素解析とかして色々したくなった(必要になった)ので。

【Mac】悲劇回避!Command + qで簡単にはアプリを終了させない方法

ブラウジングしてて見終わったタブを閉じようとして、 【cmd + w】を押すつも …

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

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

【5分で終わる】DropboxとLinuxとを同期させる方法

意外と簡単にできたのですが、 どんなに簡単なことでもメモメモ。

【エンジニア必見】vimでの入力補完の仕方

viでの入力補完について、あまり使われていないようなので、 一応記事に載せておき …

no image
wordpressで502 Bad gatewayがでてダッシュボードにログインできなくなった時の備忘録

久しぶりにブログを更新しようと思ったら管理者画面に入れなくなって完全に詰んでたへ …

お名前.comの共用サーバにSSHで接続できない件について【解決済み】

友人がお名前.comでサーバを借りてHPを作りたいとのことで、 お手伝いすること …

【Ansible】変数内に特定文字列が含まれているか確認して処理を分ける方法

Ansibleのwhen句で使えるmatchによる判定の仕方です。

WordPressで投稿した記事がなかなか反映されなくて震えた

タイトルの通りなんですけど、 困るというより不安になりますね。 なんとか解決にい …

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

Message

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