MT4.21をインストールしたサーバにWordpressをインストールしたところmtのテーブルが消えてしまいました。(DBはわけて設定していました)おそらくこれが原因で、MTOSの管理画面にログインできなくなり困っています。


この原因は以前私が出した質問からわかったものです
http://q.hatena.ne.jp/1355629579(ベストアンサーのコメントにより原因特定)
※「MTフォルダのUPし直し」はカスタマイズをしていたため、断念しました。

MTのサイトは問題なく表示されていますが、管理画面にログインできないことと、サイト内検索で「不正なクエリーです」とエラーがでること、またタグ検索で以下のエラーが表示されます。

以前エラーはなかったので、おそらくWordpressをインストールして、DB内容が書き変わったことが原因ではないかと思います。

【タグ検索のエラー】
DBD::mysql::st execute failed: Table '(省略)/DBI.pm line 127.

【エラー箇所】
127: $sth->execute(@{ $stmt->{bind} });
128: $sth->bind_columns(undef, @bind);

Wordpressサイトの方は問題なくログイン・表示できています。
対策方法がお分かりになる方いらっしゃいましたら、お助け願います。

どうぞ宜しくお願い致します。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2013/02/02 18:22:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:rouge_2008 No.1

回答回数595ベストアンサー獲得回数351

ポイント200pt

遅くなりましてすみません。
状況がある程度分かったので回答させていただきます。

バックアップしてあったファイルが正常であれば再インストールは必要ありませんので、まずはデータのリストアを行います。(※MTOS 4.21のテーブル数は38個ですので、テーブル数に異常はないようです。)

[ ---------- 追記開始 ----------]
※リストアに使用するバックアップファイルを決める為、バックアップファイルと思われる物を作成日の新しい順にダウンロードして、中身がMTの物を探してください。
[ ---------- 追記終了 ----------]
※念のため、事前にバックアップファイルのコピーを作成してから作業してください。

1.まず、リストアを実行する前に、再度バックアップファイルを開いて、ファイルが文字化けしていない事を確認します。
※文字化けしている場合は、文字化けしない文字コードで開き直します。(フリーのテキストエディタでは「サクラエディタ」や「TeraPad」等で可能です。)

2.次にファイルの文字コードと、「SET NAMES ***」や各テーブルごとの「SET character_set_client = ***;」「ENGINE=MyISAM DEFAULT CHARSET=***;」などの文字コードの指定が合っているか確認します。
※一致しない場合は、ファイルの文字コードに合わせて各文字コード指定の記述をすべて変更するか、あるいは文字コード指定に合わせて、ファイルの文字コードを変更して保存し直します。(同上のテキストエディタで可能です。)
※この文字コードは使用するデータベースの文字コードと合わせます。

3.次にファイル前半に、「DROP DATABASE IF EXISTS `データベース名`」の記述がないか確認します。
この記述は、「もし`データベース名`があれば削除する」というSQLです。
※他、「CREATE DATABASE ~ `データベース名`」や「USE `データベース名`」(※こちらはない可能性が高いです。)等の記述もないか確認してみてください。
もしあれば、上記の記述がある行をすべて削除します。

4.ファイルの編集が完了したら、「mysql.dump」という名前で元あった場所(※ユーザーのルートディレクトリ)にアップロードします。

5.XREAのコントロールパネルにログインして、「データベース」にアクセスします。

6.手順1で「DROP DATABASE IF EXISTS `データベース名`」等の記述がない事を確認(※あるいは削除)したのでしたら、WordPressと同じデータベースを使っても大丈夫ですが、一応別のデータベースを使った方がいいと思います。
「MySQLの追加・編集」で空欄にチェックをつけ、新しいデータベースの情報を入力して「作成」でデータベースを新規作成します。
※データベースの文字コードは、バックアップファイルの文字コードと同じにします。

http://www.xrea-navi.com/server/mysql.html

7.新規作成したデータベースにチェックが入っているのを確認したら、「復元」ボタンをクリックします。

これでバックアップファイルのデータが復元されます。

[ ---------- 追記開始 ----------]
8.「mt-config.cgi」をダウンロードして、「Database」「DBUser」「DBPassword」の設定を新規作成したデータベースの物に変更し、アップロードし直します。
[ ---------- 追記終了 ----------]

MTの管理画面にアクセスして、記事の保存状態などを確認してみてください。
(※再構築を実行すると、サイトの内容が書き替えられてしまうので、再構築関連のメニューは実行しないで表示確認だけ行ってください。事前に既存のサイトのデータをフォルダごとダウンロードして保存しておくと安心です。)

とりあえずここまで確認してみて、分からない事があれば作業を実行する前に返信してください。

[ ---------- 追記開始 ----------]
ここまでで特に問題ないようでしたら、MTの管理画面で「設定」→「公開」にアクセスして、「サイトURL」と「サイトパス」を既存のサイトとは別の物に変更して「変更を保存」で適用させます。
※設定が完了した時点でパーミッションに問題がなければ、指定したパスに指定したディレクトリが作成され、ファイルが一部生成されます。(事前にディレクトリを作成して、「707」など(※XREAはデータ格納ディレクトリは「700」?)適切なパーミッションに変更しておいた方がいいかもしれません。)
http://www.movabletype.jp/documentation/linux.html
http://www.xrea.com/spec/

※この設定完了以降は再構築を実行しても大丈夫です。
[ ---------- 追記終了 ----------]


【XREAのコントロールパネルでのバックアップとリストアについて】

http://mage8.com/backup.html
※「DBのバックアップを作成する」参照

バックアップを作成したいデータベースを選択して、保存をクリックします。

これだけでユーザのルートディレクトリにデータベースのダンプファイルが作成されますので、FTPなどを使用してダウンロードして保存して下さい。

保存したダンプファイルからリカバリを行う場合には、ユーザのルートディレクトリにダンプファイルをアップロードし、データベースを選択して、復元をクリックします。


http://www.wakatta-blog.com/xreacoreserver_1.html
※「Mysqlコピー」参照

「保存」ボタンを押すと、サーバーのrootディレクトリに「mysql.dump」という名前のファイルが出来上がります。これを新サーバーに移動して、同じく管理画面⇒データーベースの画面から、「復元」ボタンを押すと、データーベース内のデータをすべてコピーできます。


※どうやら「保存」を実行した場合に作成されるバックアップファイルは「mysql.dump」という名前(※リストアする時も同じファイル名にする必要あり。)のようですので、もし今後「保存」を実行してバックアップファイルを作成する場合は、先に同名のファイルがないか確認して、ダウンロードしておく事をおすすめします。

残っていたファイルが「mysql.dump.1220967566.backup」や「mysql_.1331299264.dump」という事ですが、定期的に作成されているようですか?
最新ではいつ作成されていましたか?


※WordPressの「サイトアドレス」や「WordPressアドレス」の変更では、テーブルの構成等の変更は行いません。
該当する項目のデータの変更のみですので、WordPressのデフォルトの機能が原因の可能性はほぼないと思います。(※プラグインが原因の可能性はあるかもしれませんが、公式のプラグインで人気のある物が原因である可能性は低いです。それなりにユーザー数が多いと思いますので、すぐに対処されていると思います。)
管理画面でのデータベースの操作が原因の可能性が一番高いのですが、WordPressのインストールは一度だけ行ったのでしょうか?
「sample」のテーブルが11個ですが、こちらはデフォルト状態のようです。
上に書いたように「復元」を実行するとユーザーのルートディレクトリにある「mysql.dump」の内容が復元されるようですが、バックアップファイルの内容を確認しないまま「復元」ボタンをクリックした事はありませんか?
※少し検索してみましたが、「復元」ボタンによるリストアの方法(※バックアップファイルの置き場所やファイル名など)が分からない人がけっこういるようでした。

他2件のコメントを見る
id:horizon58

早々にご返答いただき、ありがとうございます。

また、詳しくご説明くださり感謝します。

結論から申しますと、データの復元確認ができました!

mt.cgiが「404 Not Found」となる原因ですが、以前Xreaサーバーで使っていたMTインストール済みのドメイン(○○.com)が有効期限切れになり、再取得できなかったため、新規ドメイン(△△.com)を取得し、○○.comディレクトリに対して同期表示設定(○○.comで表示されていた内容がそのまま△△.comで表示できる設定)をしていたことがあり、ログインURLとして△△.com/mt/mt.cgiを指定したことによるものだと判明しました。

簡単に申しますと、実際にデータがある場所は「http://ユーザー名.サーバー名.xrea.com/www.○○.com/mt/mt.cgi」だったのですが、「http://△△.com/mt/mt.cgi」を指定していたためファイルが見つからなかった、という具合です。(なので「404 Not Found」はサーバーから用意された表示だったようです)

新しいMTをインストールしようと進める中で各フォルダ確認のため改めてログインなどしていたところ、気がつききました。

最終的に、一番の問題であったログインできない件、また問題であったサイト内検索結果のエラーやタグ検索結果のエラーの件も含め、全て解決いたしました。

今後はきちんと提供されているダッシュボードのバックアップ機能でバックアップを取り、MT5へのアップグレードやwordpressへの移行を検討していきたいと思います。

その際は、上記でいただいたアドバイスを参考にさせていただき、進めようと思っております。


既存のwordpressのデフォルトデータに置き換わってしまったDBについてですが、結局原因は不明でした。

ご指摘の初期化をしてしまったかどうかについてですが、こちらもそういった記憶はありませんでした。

何かやってしまったようなことがあればおそらく覚えていると思うのですが、記憶にないため何か別の原因であると思います。

少し心残りなところはありますが、既存DBの内容は残したまま上書きすれば、残るものは残り、上書きされるものは上書きされると思うので、問題はないのかなと思っています。

ただ少し心配なので、一応新しいDBの方を中心にサイト運用していきたいと思います。


ということで、おかげさまで直近の問題は全て解決いたしました。

長期にわたりサポートしていただき、本当にありがとうございました。

以前投稿した質問も含め、rouge_2008さまのご指摘・アドバイスがなければ、この問題は解決できなかったかもしれません。

ポイントの方ももっと差し上げたい気持ちなのですが、現状の残りポイントの兼ね合いから設定ポイントにてお送りさせていただきます。

また何かの際には、ぜひ宜しくお願い申し上げます。

(おそらく今後もサイト制作関係で彷徨ってしまう可能性大なので・・)

では今回のところはこのあたりで失礼させていただきます(_ _)

2013/02/02 18:20:49
id:rouge_2008

データベースの件は疑問ですが、ログインの問題だけでも解決して良かったです。
ポイントとベストアンサーありがとうございました。

2013/02/02 20:40:20
  • id:rouge_2008
    WordPressをどのようにインストールしたのでしょうか?
    WordPressのインストールで使用中のデータベースを指定したとしても、他のアプリケーションで使用中のテーブルを消去する事はありません。(※Wordpressの各テーブル名とMTの各テーブル名とはすべて異なりますので、上書きもされないはずです。)
    手動で消去した記憶など、何か操作した覚えはないでしょうか?
  • id:horizon58
    ご返答ありがとうございます。

    wordpressはxreaサーバーでマルチドメイン設定を行い、/public_htmlの下にドメイン名のフォルダを生成し、その中にwordpressフォルダを作りインストールしました。

    MTも同様に別のドメイン名フォルダ内にインストールしています。

    データベースはMT用に「sample」というDBを最初に作成し、その後Wordpress用に「sample_new」というような形で新しいDBを作りこれをつかっています。(WP用のDB名で「sample」は固定で編集不可でした)

    MT用のDBには以下11行のテーブルが保存されていて

    wp_commentmeta
    wp_comments
    wp_links
    wp_options
    wp_postmeta
    wp_posts
    wp_terms
    wp_term_relationships
    wp_term_taxonomy
    wp_usermeta
    wp_users

    WP用には以下の24行のテーブルが保存されていました。

    wp2_ak_404_log
    wp2_blc_filters
    wp2_blc_instances
    wp2_blc_links
    wp2_blc_synch
    wp2_commentmeta
    wp2_comments
    wp2_keni_setting
    wp2_ktaisession
    wp2_links
    wp2_options
    wp2_popularpostsdata
    wp2_popularpostsdatacache
    wp2_postmeta
    wp2_posts
    wp2_searchmeter
    wp2_searchmeter_recent
    wp2_terms
    wp2_term_relationships
    wp2_term_taxonomy
    wp2_usermeta
    wp2_users
    wp2_yarpp_keyword_cache
    wp2_yarpp_rela
  • id:horizon58
    追記:手動で消去した記憶はありません。
  • id:rouge_2008
    プラスを契約しているのですか?
    その2つ以外にデーターベースはないのでしょうか?
    MTは別のアカウント(※現在未使用あるいは削除済み)でインストールしたという事はないでしょうか?
    データベースが見つからない場合、カスタマイズしていた箇所は作成し直すしかないと思います。
    ※テンプレートやウィジェットの編集等は、すべてデータベースに保存されています。
    記事に関しては、サイトのデータがあれば復元できたように思います。


  • id:horizon58
    ご返答ありがとうございます。

    xreaはプラスサービスを契約しています。作ったDBは2つだけです。

    MTを別のアカウントでインストールしたことは、ありません。

    もちろんバックアップはとっていませんが、mysqlのコマンドを使って過去のデータを復元させることは不可能でしょうか?

    カテゴリごとにデザインを変えるプラグインを使っていたので設定・復元にかなり時間がかかってしまいそうです。

    サイト上にはデータが残っているのでとてももどかしいです。
  • id:horizon58
    追記:
    もう一点気になるのですが、現在ログイン画面のログインボタン(mt.cgiへのリンク)を押すと自動的に「mt-upgrade.cgi?__mode=install」へ転送されてしまうのですが、このまま再インストールすると現在web上にあるデータは全て消えてしまうのでしょうか?
  • id:rouge_2008
    バックアップがないのでしたら、データベースのデータを復元する事はできません。


    インストール時にサイトのURLを入力したと思いますが、以前と違うURLになるように、違うディレクトリを指定すれば消えないはずです。

    http://www.movabletype.jp/documentation/installation/install_wizard.html
    ※「6.最初のブログを作成」を参照

    http://www.koikikukan.com/archives/2008/11/01-015555.php
    ※「3.8 ブログ情報設定」を参照
  • id:horizon58
    ご返答いただき、ありがとうございます。

    まずはいただいたURLより再インストールを進めてみたいと思います。

    バックアップについてですが、DBの内容がよくわからないので、これはこれでとっておき、新しいDBを使ってMTをインストールしようとしたところ、ルートディレクトリにいくつかのdumpとbuckup拡張子のファイルがあることがわかりました。

    サーバー側の機能かプラグインで保存したかはわかりませんが、mysql.dump.1220967566.backup や mysql_.1331299264.dump というようなファイルがあります。

    これらのファイルを使えばもしかしたらDB復元は可能ではないかと思いました。

    その場合新しいMTをインストールして新しいDBを作り、そこに復元してそれぞれのファイルを確かめてみるのがいいのかなと思っていますが、これについてどのように思われますでしょうか?

    なにか不備や注意点等ありましたら、教えて頂けますと幸いです。

    どうぞ宜しくお願いいたします。
  • id:rouge_2008
    そのファイルをテキストエディタで開けるか、実際に開いて確認してみてください。
    mysqldump等で保存したバックアップでしたら、テキストエディタでファイルの内容を確認できます。
    ※テーブルの出力、テーブル内データの出力がSQLでテーブルの数だけ繰り返し記述されていますので、各テーブル名を確認してみてください。
    WordPressとは違うようでしたら、MTのデータの可能性があると思います。
  • id:horizon58
    ご返答いただき、ありがとうございます。

    dumpファイルをテキストエディタで開くことができました!

    おそらくDBが正常だった頃のものだと思います。

    -- Table structure for table `mt_asset`

    -- Dumping data for table `mt_asset`

    -- Dumping data for table `mt_asset_meta`


    のような形で38個のmt用らしきテーブルデータが書き出されていました。

    こちらで復元作業をしてみたいと思います。

    dumpファイルからのDB復元については検索して方法が見つかりそうですが、問題の書き変わったwp用テーブルデータというのが不明なので、上書きして消えてしまうであれば新しいDBを作成してそちらにdumpファイルのリストアを行いたいと思っています。

    その場合は使えなくなったmtがアップされているディレクトリ内の画像ファイルやhtml・cgiファイル等を新しいmtをインストールするディレクトリに全てアップロードし直し(コピーして移行)をして、mtを再インストールした後にリストアするという方法で問題ないでしょうか?

    もしDBが上書きされないようなら現状のままリストアをしてしまっても問題なさそうな気はしますが・・ちょっとわかりませんでした。

    また今思い出すと、wpをインストールした際特別変わったことをしたといえば、http://○○.com/wordpress/のアドレスでwpサイトをテスト表示させ、完成後 http://○○.com として表示させる設定を、ダッシュボードの設定⇒一般⇒サイトアドレスより行いました。

    これが原因になる可能性はありますでしょうか?

    とにかくほぼ解決に向けた方法が見えてきたように思います。

    どうもありがとうございます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません