サポート » 使い方全般 » データベース接続確立エラー→mysqlが起動しない

  • 解決済 fnwpen

    (@fnwpen)


    1年ほど運用していたWordPressが先日データベース接続確立エラーとなってしまい、表示できなくなりました。

    mysqlが動いていないようで、/etc/rc.d/init.d/mysqld start と打っても起動に失敗してしまいます。phpMyAdmin にも入れません。どうかアドバイスをお願いします。

    環境は以下のとおりです。

    PHP 5.3.9
    MySQL 5.1.49
    ServersMan@VPS
    CentOS release 5.9 (Final)

    このほかに何か提示したほうがよいものがあれば教えてください。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • startで起動しないのではなく起動しているから起動エラーになるとか・・・
    restartでも同じですか?
    MySQLサーバーにコンソールからログインできますか?
    ログインや起動を試みた際のログをご確認ください。
    /var/log/messagesに出力されます。

    トピック投稿者 fnwpen

    (@fnwpen)

    ありがとうございます。ServersMan@VPSのサポートにうかがったところ、mysqlが動いていないとのことでした。ちなみにrestartをかけると、以下のようになります。

    →/etc/rc.d/init.d/mysqld restart
    mysqld を停止中: [ OK ]
    MySQL Daemon failed to start.
    mysqld を起動中: [失敗]

    コンソールからのログインでは、以下のようになります。ほかのユーザーでログインしようとしても同じようになります。
    →mysql -u root -p
    Enter password:
    ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)

    →/var/log/messages は以下のとおりです。27日のものしか見えないのですが。

    Jan 27 03:24:02 dti-vps-**** syslogd 1.4.1: restart.
    Jan 27 13:39:18 dti-vps-**** shutdown[36164]: shutting down for system halt
    Jan 27 13:39:18 dti-vps-**** init: Switching to runlevel: 0
    Jan 27 13:39:18 dti-vps-**** saslauthd[42450]: server_exit : master exited: 42450
    Jan 27 13:39:19 dti-vps-**** xinetd[41984]: Exiting…
    Jan 27 13:39:20 dti-vps-**** exiting on signal 15
    Jan 27 13:40:32 dti-vps-**** syslogd 1.4.1: restart.
    Jan 27 13:40:32 dti-vps-**** iscsid: iSCSI logger with pid=56722 started!
    Jan 27 13:40:32 dti-vps-**** iscsid: Missing or Invalid version from /sys/module/scsi_transport_iscsi/version. Make sure a up to date scsi_transport_iscsi module is loaded and a up todate version of iscsid is running. Exiting…
    Jan 27 13:40:33 dti-vps-**** xinetd[56770]: xinetd Version 2.3.14 started with libwrap loadavg labeled-networking options compiled in.
    Jan 27 13:40:33 dti-vps-**** xinetd[56770]: Started working: 0 available services
    Jan 27 13:40:34 dti-vps-**** saslauthd[58764]: detach_tty : master pid is: 58764
    Jan 27 13:40:34 dti-vps-**** saslauthd[58764]: ipc_init : listening on socket: /var/run/saslauthd/mux
    Jan 27 13:40:38 dti-vps-**** init: no more processes left in this runlevel
    Jan 27 17:45:53 dti-vps-**** yum: Installed: 2:nmap-4.11-2.i386

    →/var/log/mysqld.log は以下のとおりです。

    130130 17:43:42 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
    130130 17:43:42 [Note] Plugin ‘FEDERATED’ is disabled.
    /usr/libexec/mysqld: Can’t find file: ‘./mysql/plugin.frm’ (errno: 13)
    130130 17:43:42 [ERROR] Can’t open the mysql.plugin table. Please run mysql_upgrade to create it.
    130130 17:43:42 InnoDB: The InnoDB memory heap is disabled
    130130 17:43:42 InnoDB: Mutexes and rw_locks use InnoDB’s own implementation
    130130 17:43:42 InnoDB: Compressed tables use zlib 1.2.3
    130130 17:43:42 InnoDB: Using Linux native AIO
    130130 17:43:42 InnoDB: Initializing buffer pool, size = 128.0M
    130130 17:43:42 InnoDB: Completed initialization of buffer pool
    130130 17:43:42 InnoDB: Operating system error number 13 in a file operation.
    InnoDB: The error means mysqld does not have the access rights to
    InnoDB: the directory.
    InnoDB: File name ./ibdata1
    InnoDB: File operation call: ‘open’.
    InnoDB: Cannot continue operation.
    130130 17:43:42 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

    これらから何か糸口が見つかればよいのですが。よろしくお願いいたします。

    参考にしてみてください。
    http://www.hi-ho.ne.jp/tsumiki/book_sup2.html

    トピック投稿者 fnwpen

    (@fnwpen)

    ありがとうございます。よく読んでトライしてみます。
    結果はまたこの場で報告いたします。

    トピック投稿者 fnwpen

    (@fnwpen)

    まだ、こまかい動作の検証はしていないのですが、とりあえずmysqlの起動に成功し、サイトが表示できるようになりましたので報告します。

    まず、紹介された参考サイトを見て「MySQLサーバーで使うソケットをクライアントに合わせる」というやり方を試みたのですが、これは変化がありませんでした。

    次の「クライアント側で接続先のソケットを指定する」は、僕の腕ではなにか大失敗をやらかしてしまいそうだったので、最後にやってみることにしました。

    そこで「なんらかの理由でソケットファイルが削除されている」を疑ってみました。実はこれは以前から気にしていて、あれこれ試しては失敗していました。ファイルも見つかりませんでした。

    しかし「ソケットファイル格納ディレクトリのパーミションの問題が考えられます。」という文を読み、ここに chmod 777 を与えてみました。ところが、これでも起動は失敗に終わりました。

    そこで改めて /var/log/mysqld.log を見ると、以下のようなエラーが出ていました。
    [ERROR] /usr/libexec/mysqld: Can’t create/write to file ‘/var/run/mysqld/mysqld.pid’ (Errcode: 13)
    [ERROR] Can’t start server: can’t create PID file: Permission denied

    探してみると/var/run/mysqld以下にmysqld.pid というファイルはなく、これもパーミッションが問題かと思い、ここにもchmod 777を与えてみました。

    そのうえで/etc/rc.d/init.d/mysqld start をやってみると、
    mysqld を起動中: [ OK ]

    という文字が出てきました。サイトを確認すると問題なく表示されました。なぜこうなったのか、僕の知識ではわからないことばかりですが、mojimojiさんのアドバイスのおかげでこうして復旧することができました。本当にありがとうございました。

    解決したようで、よかったですね。

    パーミッションは777ではなく775で良いと思います。
    グループと所有者がmysqlになっていればOKのはずです。

    トピック投稿者 fnwpen

    (@fnwpen)

    10日ほど悩んでいたので本当に助かりました。パーミッションも再度確認してみます。
    どうもありがとうございました。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • トピック「データベース接続確立エラー→mysqlが起動しない」には新たに返信することはできません。