人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

●質問者: horizon58
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● rouge_2008
●200ポイント ベストアンサー

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

バックアップしてあったファイルが正常であれば再インストールは必要ありませんので、まずはデータのリストアを行います。(※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」の内容が復元されるようですが、バックアップファイルの内容を確認しないまま「復元」ボタンをクリックした事はありませんか?
※少し検索してみましたが、「復元」ボタンによるリストアの方法(※バックアップファイルの置き場所やファイル名など)が分からない人がけっこういるようでした。


horizon58さんのコメント
ご回答いただき、ありがとうございます。 大変詳しく説明いただき、ありがたいです。 またお返事が遅くなり大変すみません。 Xreaのdumpファイルリストアがうまくいかず問い合わせをしていたのですが、原因特定まで時間がかかってしまい少し時間がかかってしまいました。 結果的に○○_△△というデータベースにdumpデータをリストアする場合は、mysql_△△.dumpとリネームする必要があり、またファイル名変更の際にテキストエディタで開かずに行わないとデータ内容が書き変わってしまう不具合があるようです。 また必ずバイナリモードでdumpファイルダウンロード・アップロードを行う必要もあるとのことでした。(これも自動的にデータ内容が書き変わってしまう場合があるそうです) このようなことが原因で手間取ってしまった次第です。 そして、なんとか最新データ(2012/3/9分)でリストアが完了しました。 ※dumpファイルは定期的に作られていなかったので、おそらく自分で何らかの機能を使ってバックアップを取っていたものと思われます。 できたのですが、「mt-config.cgi」の「Database」「DBUser」「DBPassword」をリストア先のDB情報に書き換えアップロード後「mt.cgi」にアクセスし、「ログイン」をクリックすると、ログイン画面までは遷移したのですがログイン後は「404 Not Found」の表示が出てしまいます。 検索で調べてみると同様の問題が過去にあり、アップグレードをしたらアクセスできるようになったと書かれていましたが、原因はわからなかったためまだ実行はしていない状態です。 参考ページ:http://switch-blade.org/bl/2006/07/mtcgi.php 現在以上のような状況ですが、アップグレードする場合バージョンが違うMTから旧バージョン用のDBにアクセスする形になってしまうかと思いますが、やはりこれは問題でしょうか? wordpressのインストールについてはインストールは一度しかしていないです。 また復元ボタンを押してしまったというような記憶もありません。 度々申し訳ありませんが、どうぞ宜しくお願い致します。

rouge_2008さんのコメント
ご報告ありがとうございます。 (何度も投稿し直してすみません。誤字・脱字訂正と重複コピーした箇所の訂正を行っています。) 2つ目以降のデータベースのバックアップファイル名には、データベース名の後半部分が入るのですね。納得しました。 ※そうなると最初のデータベースは、バックアップファイルとして「mysql.dump」が作成され、復元に利用するバックアップファイルもこの名前になるようですが、データベースを選択して「削除」ボタンも「復元」ボタンも押した事がないとなると、WordPressのデータベースに入れ替わった理由は不明です。 既存の中身のあるデータベースを選択した状態で、「作成」ボタンを押すと初期化される可能性がありますが(※「作成」ボタン実行で「データベースを作成(初期化)しますが?」という確認メッセージが出るようですので・・・)、この操作もした事はないですか? ※ファイル名変更の操作ですが、(テキストデータですので・・・)バックアップファイルの不具合ではなく、OSあるいはテキストエディタの問題だと思います。 ユーザーサポート時に確認した事がある問題だったのでしょうか・・・ 私は聞いた事がない問題ですのであまり心配しなくてもいいと思いますが、どのような環境で発生するのかも教えてくれれば良かったんですけれど。 通常は、Windowsはエクスプローラ、MacはFinderからファイル名を変更すると思いますので大丈夫です。 バイナリモードでのアップロードは、レコードのデータ内にある改行コードが変更されないようにする為ですね。(アスキーモードだとサーバーのOSに合わせて改行コードが変更されます。) > ログイン画面までは遷移したのですがログイン後は「404 Not Found」の表示が出てしまいます。 MTの動作に必要なファイルが足りなかったのでしょうか・・・ ログイン画面もログイン後も「mt.cgi」なので、何がなかったのかは分かりません。 「404 Not Found」はサーバーが用意している画面でしたか? それともMTのような画面でしたか? 通常のアップグレード操作も旧バージョンのデータベースにアクセスして行いますので問題ありません。 バージョン4から5へのアップグレードも可能ですが、まずは4.2xへのアップグレードをおすすめします。(バージョン5にアップグレードする場合は、次のページを(※リンク先もすべて)確認してください。) http://www.movabletype.jp/documentation/mt5/upgrade/ ※かなりたくさんの注意事項があります。 アップグレードの手順は次のページで確認してください。 http://www.movabletype.jp/documentation/upgrade/mt4.html >> <span style="font-weight:bold;">Movable Type のアップグレード手順</span> + データのバックアップ + 新バージョンの Movable Type をサーバーにアップロード + 旧バージョンのアプリケーションディレクトリから、環境設定ファイル (mt-config.cgi) とプラグイン関連ファイルの引き継ぎ + 旧バージョンのアプリケーションディレクトリを削除 + 新バージョンのアプケーションディレクトリにアクセス + アップグレードウィザード実行 << ※どのバージョンからアップグレードする場合も、大まかな流れは上記の通りです。(バージョンごとの注意事項や各手順の詳細な作業内容は各ページを確認してください。) ※4.2xの最終バージョンは4.292ですので、「MTOS-4.292-ja.tar.gz」または「MTOS-4.292-ja.zip」を利用するといいかもしれません。(任意のバージョンを選択してください。) http://www.movabletype.org/downloads/archives/4.x/ ※同じページでMTOSバージョン4.21もダウンロードできますので、同じバージョンのファイルを新規フォルダにアップロードしてもいいかもしれません。(アップグレードの場合と同じ手順で行います。) ※アップロード前に既存のアプリケーションフォルダをダウンロードして、ファイルを比較しておくと、足りないファイルが分かるかもしれません。 【XREAのデータベース操作について】 バックアップの為に、ユーザーのルートディレクトリにあるバックアップファイルをすべてダウンロードしてから、「保存」「復元」の操作を試してみるといいかもしれません。 1.バックアップ用にすべてダウンロードしたら、ユーザールートディレクトリのバックアップファイルはすべて削除しておきます。 2.新規に確認用のデータベースを作成して、適当なバックアップファイルから復元します。 ※復元実行後は、アップロードしたバックアップファイルを削除しておきます。 3.確認用データベースを選択して「保存」ボタンをクリックします。 ※FTPのユーザーディレクトリに作成されたバックアップファイルの名前と時刻を確認します。 4.再度同じデータベースを選択して、「保存」ボタンをクリックします。 ※同じく作成されたバックアップファイルを確認します。(バックアップファイルが上書きされて、存在するファイルは一つだけですか?既存のファイル名がタイムスタンプつきの名前に変更されて、新規に作成されたファイルが「mysql_△△.dump」になっていませんか?) ※上記の操作を繰り返すと、これらの機能の動作仕様がある程度分かるようになると思います。もし興味と余裕があったら試してみてください。 ※確認が終わったら、作成したデータベースを削除しておきます。(もし必要でしたら、バックアップとしてダウンロードしたファイルをすべて同じ場所にアップロードし直します。) ※確認用のデータベース削除前に、「作成」ボタンを実行した際の動作についても確認しておくといいかもしれません。(「作成」ボタン実行後、FTPでユーザールートを確認し、その後「保存」ボタンを実行してから再度同じように確認してみてください。また、作成されたバックアップファイルのサイズと、「作成」ボタン実行前に(上記手順3および手順4で)「保存」を実行して作成されたファイルのサイズと比べてみてください。)

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さまのご指摘・アドバイスがなければ、この問題は解決できなかったかもしれません。 ポイントの方ももっと差し上げたい気持ちなのですが、現状の残りポイントの兼ね合いから設定ポイントにてお送りさせていただきます。 また何かの際には、ぜひ宜しくお願い申し上げます。 (おそらく今後もサイト制作関係で彷徨ってしまう可能性大なので・・) では今回のところはこのあたりで失礼させていただきます(_ _)

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

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ