勉強したことのメモ

webプログラマ見習いが勉強したことのメモ。

Plesk12にログインしようとするとエラー発生

      2018/11/09

Plesk12のログインページを開くと「ERROR: Zend_Db_Statement_Exception: SQLSTATE[42S02]: Base table or view not found: 1146 Table 'psa.sessions' doesn't exist (Pdo.php:234)」と表示されログインできなかった。対応方法のメモ。

 

エラーログを確認する

/var/log/mysqld.logにあるMySQLのログを確認したところ以下エラーが出力されていた。

 

Google翻訳にかけると以下になる。

[ERROR]テーブルpsa / sessionsが見つかりません。
InnoDBの内部データディクショナリは.frmファイルですが、
テーブルが存在する。おそらくあなたはInnoDBデータを削除して再作成したでしょう
対応する.frmファイルを削除するのを忘れてしまった
InnoDBテーブルの.frmファイルを別のデータベースに移動しましたか?
テーブルには、このバージョンのエンジンのインデックスが含まれています
サポートしていません。
http://dev.mysql.com/doc/refman/5.1/en/innodb-troubleshooting.htmlを参照してください。
どのように問題を解決できるか。

psaデータベースのsessionsテーブル? とかいうのが見つからないっぽい。尚、psaデータベースとはPlesk自体の管理用データベースらしい。

 

バックアップを探す

Pleskデータベースは自動で/var/lib/psa/dumps/ディレクトリにバックアップされる。mysql.daily.dump.*.gz(*部分は数字)のファイルがバックアップファイルになる。最新のものをローカルに落として中身を見たところpsaデータベースのdumpファイルだった。

 

psaデータベースの確認

以下で確認する。

ちなみに今回はケース2の方だった。

 

ケース1の場合

 

ケース2の場合

dumpファイルの中にcreate database psaの記述が上部にあるのでコメントアウトか削除した上でサーバにアップする。

 

原因

直近でMySQLのストレージエンジンをMyISAMからInnoDBに変更した。その際に/var/lib/mysqlディレクトリにあるib_logfile0、ib_logfile1、ibdata1のファイルは他所に移した。するとinformation_schema以外で通常時に使っているデータベース(psa以外)がテーブル名は表示されるものの、テーブル内のデータは見られなくなった。ここが原因だと思われる。

通常時に使っているデータベースはバックアップを取っていたのですぐにインポートしたが、psaデータベースは認知していなかったので焦った。

 

その他

以前にCentOSのバージョンを上げてOpenSSHか何かを更新した際に、今回とはまた違うエラーだったとは思うがPleskにログインできなくなった。Pleskの管理画面上以外(SSH接続とか)からサーバ設定を変更するとリスクを伴うので注意する。

 

参考サイト

https://support.plesk.com/hc/ja/articles/213369589--Plesk-%E3%82%92%E9%96%8B%E5%A7%8B%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93-ERROR-PleskFatalException-Unable-to-connect-to-database-Unknown-database-psa-

 

https://support.plesk.com/hc/ja/articles/213904125--Plesk-%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%83%80%E3%83%B3%E3%83%97%E3%82%92%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97-%E5%BE%A9%E5%85%83%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF

 - サーバー

  関連記事

suとsu -の違い

スーパーユーザーになる際にsuだけ打っていたけど su -の方がいろいろ出来るか ...

PHPでコマンドを実行して画像を加工

PHPで画像をリサイズしたりサムネイルを作ろうとすると、 ソースが長くなって面倒 ...

sshでMySQLの操作

今までMySQLを操作するときはphpmyadminから 行っていたけど、php ...

VPSにメールサーバを導入する方法

VPSにメールサーバを導入したかった。具体的にはThunderbirdでメールの ...

URLを入力するだけでサーバーの負荷テストが出来る「loadimpact」が便利

URLを入力するだけでサーバーの負荷テストが出来る「loadimpact」が便利 ...

apacheのアクセスログをリアルタイムで監視する

そういえば業務中に上司がアクセスログを リアルタイムで監視する時があるなと思った ...

異なるVPS間でMySQLの接続を行う

異なるVPS間でMySQL接続を行った際のメモ。 さくらVPS(IP:111.1 ...

サーバのメモリやロードアベレージが変に上がっていた

PVやリアルタイムのアクティブユーザーはあまり変わらないのに、以前よりメモリ使用 ...

サーバファイルいじる際に「E325: ATTENTION」が出る場合の対処

httpd.confとかをSSH接続で触っている際に、例えばSSHクライアントソ ...

PHP5.4系でAPCが上手く動かなかったので5.5にアップデート&Zend OPcache導入

PHP5.3系から5.4系にアップデートしてから、WordPressがちょっと重 ...