質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

Q&A

解決済

2回答

1240閲覧

DBが止まっていることがわかるログってありますか。

kenji267

総合スコア50

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

0グッド

0クリップ

投稿2018/09/26 12:42

編集2018/09/26 12:43

さくらVPSで、apache、mysql、phpが動く環境を作っています。

mysqlが止まっているときですが(以下のイメージ)、
(service mysqld stopで、mysqld を停止中:      [ OK ])
このとき、DB(mysqlサーバ)が止まっていることがわかるログってあったりしますか?

アクセスすると、ブラウザ上で以下のメッセージが出ますが、ログで見れたりできないのでしょうか?
SQLSTATE[HY000] [2002] No such file or directory

access.log、error.logにはDB接続不可のメッセージは出ていません。
ご教授頂けると助かります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

MySQLのエラーログファイルに、起動と停止のメッセージが出ていると思います。

投稿2018/09/26 12:50

otn

総合スコア84555

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kenji267

2018/09/26 13:44 編集

回答ありがとうございます。 ちなみに、DB側ではなく、アプリケーション側(apacheのerror.logとか)からDBに接続不可であるログを確認する方法、もしくはそのように設定する方法ってあったりするのでしょうか?
otn

2018/09/26 14:02

当たり前ですが、アプリケーションが接続不可のメッセージを出せば可能かと。
kenji267

2018/09/26 14:49

MySQLのエラーログファイルではなく、アプリケーション側(apacheのerror.logとか)のログに出力することが可能ということでしょうか?。ちなみに、ブラウザのメッセージに出力することではありません。 具体的な方法を頂ければありがたいです。
otn

2018/09/27 00:48

Apacheのログに書くのはたぶん出来ないと思います。調べてませんが、そういうAPIがもしApacheにあれば出来ますが。 アプリケーションがログに書くのは普通にファイルに書くか、syslogデーモン経由で、syslogのファイルに書くか。PHPからsyslogファイルに書くのはsyslog関数です。
kenji267

2018/09/27 10:48

回答ありがとうございます。 syslog恥ずかしながら調査中です。PHPからsyslogファイルに書くsyslog関数は、/var/log/messagesで確認できました。
guest

0

どういった結果を期待しているのかわかりませんが
起動時に保持されるpidファイルを元にpsで確認するとかですかね
pidファイルは予めmysqldが起動しているときに以下で確認しておきます
(/var/runとか/var/dbとか)

SQL

1show variables like 'pid_file';

たとえばこれが、「/tmp/mysqld.pid」だったなら

sh

1ps `cat /tmp/mysqld.pid`

などで確認すればいいでしょう
かりにpidファイルの指すpidが起動していなけれ空のリストが返りますし
ファイル自体がなればNo such fileが返ります

投稿2018/09/27 00:41

yambejp

総合スコア114839

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kenji267

2018/09/27 11:19

回答ありがとうございます。 今記載いただいた内容で、恥ずかしながら理解できず、未知の領域で、調べながら見てますが、 とりあえずSQLをたたくと、下記内容が出てきました。 | pid_file | /var/run/mysqld/mysqld.pid | # cat /var/run/mysqld/mysqld.pid で、番号(3423)が出ました。 ps 3423で PID TTY STAT TIME COMMAND 3423 pts/0 Sl 0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --log-error=/var/log が出ました。 今回の質問の意図はログのありかということで、 Mysqldが起動している時に、mysqlのログのありかを探し当てる手段という理解でよろしいでしょうか? (私が確認したかったことは別にあるのですが、質問内容が稚拙なので申し訳ありません。)
yambejp

2018/09/27 16:28

うまく伝わらずすみません 止まっていることを確認するんですよね? psでデーモンが表示されてるので動いているわけです 一度mysqldを殺してから同じように ps `cat /var/run/mysqld/mysqld.pid` を実行すれば状況の違いがわかるでしょう
kenji267

2018/09/28 09:33

回答ありがとうございます。 止めた場合、「そのようなファイルやディレクトリはありません」 となりました。 質問内容はおっしゃる通り、止まっていることを確認することです。 ちなみにアプリケーション側(apacheのerror.logとか)のログに出力することが可能ということでしょうか?。 今回の質問意図ですが、APサーバからDBへのアクセスエラーをはいているログを見たんで、実際に試して見たかったからです。今回はAPサーバはありませんが、現状のある環境で擬似的に確認してみたかったからです。実はログをあまり意識しておらず、DBのエラーそのものがどこではかれているかわからない有様で、今回のような稚拙な質問になってしまいました。
yambejp

2018/09/28 10:40 編集

どこまで認識があるのか微妙なので念の為 ・unixライクなOSはpsコマンドで稼働しているプロセスを確認できます ・サーバーデーモンは起動時のpidをファイルとして保持することがあります ・デーモンを終了時にpidファイルを消す場合があります 上記から、「ファイルありません」と表示されるのは「止まっている」と判断できるわけです。 また何らかの理由でpidファイルが残ってしまっている場合でも pidに書かれているpidのナンバーをpsで確認してヒットしなければ それも「止まっている」と判断できます。さらに言えば ps ax | grep mysqld のようなコマンドでプロセスを確認するのも一般的です
kenji267

2018/09/28 10:46 編集

「ファイルありません」→「止まっている」と判断できるご教授ありがとうございます。 OSのところは上記の知識が足りていません。ありがたいです。理解はこんな状況です。 実際の障害対応時は上記のような対応が必要かと思われます。 今回はログでの確認で、アプリ側でDBの不具合をどこまで把握できるか興味があります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問