質問: MT4.21をインストールしたサーバにWordpressをインストールしたところmtのテーブルが消えてしまいました。(DBはわけて設定していました)おそらくこれが原因で、MTOSの管理画面にログインできなくなり困っています。 この原因は以前私が出した質問からわかったものです ⇒(ベストアンサーのコメントにより原因特定) ※「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サイトの方は問題なくログイン・表示できています。 対策方法がお分かりになる方いらっしゃいましたら、お助け願います。 どうぞ宜しくお願い致します。
回答: 遅くなりましてすみません。 状況がある程度分かったので回答させていただきます。 バックアップしてあったファイルが正常であれば再インストールは必要ありませんので、まずはデータのリストアを行います。(※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の追加・編集」で空欄にチェックをつけ、新しいデータベースの情報を入力して「作成」でデータベースを新規作成します。 ※データベースの文字コードは、バックアップファイルの文字コードと同じにします。 7.新規作成したデータベースにチェックが入っているのを確認したら、「復元」ボタンをクリックします。 これでバックアップファイルのデータが復元されます。 [ ---------- 追記開始 ----------] 8.「mt-config.cgi」をダウンロードして、「Database」「DBUser」「DBPassword」の設定を新規作成したデータベースの物に変更し、アップロードし直します。 [ ---------- 追記終了 ----------] MTの管理画面にアクセスして、記事の保存状態などを確認してみてください。 (※再構築を実行すると、サイトの内容が書き替えられてしまうので、再構築関連のメニューは実行しないで表示確認だけ行ってください。事前に既存のサイトのデータをフォルダごとダウンロードして保存しておくと安心です。) とりあえずここまで確認してみて、分からない事があれば作業を実行する前に返信してください。 [ ---------- 追記開始 ----------] ここまでで特に問題ないようでしたら、MTの管理画面で「設定」→「公開」にアクセスして、「サイトURL」と「サイトパス」を既存のサイトとは別の物に変更して「変更を保存」で適用させます。 ※設定が完了した時点でパーミッションに問題がなければ、指定したパスに指定したディレクトリが作成され、ファイルが一部生成されます。(事前にディレクトリを作成して、「707」など(※XREAはデータ格納ディレクトリは「700」?)適切なパーミッションに変更しておいた方がいいかもしれません。) ※この設定完了以降は再構築を実行しても大丈夫です。 [ ---------- 追記終了 ----------] 【XREAのコントロールパネルでのバックアップとリストアについて】 ※「DBのバックアップを作成する」参照 > バックアップを作成したいデータベースを選択して、保存をクリックします。 > > これだけでユーザのルートディレクトリにデータベースのダンプファイルが作成されますので、FTPなどを使用してダウンロードして保存して下さい。 > > 保存したダンプファイルからリカバリを行う場合には、ユーザのルートディレクトリにダンプファイルをアップロードし、データベースを選択して、復元をクリックします。 > > ※「Mysqlコピー」参照 > 「保存」ボタンを押すと、サーバーのrootディレクトリに「mysql.dump」という名前のファイルが出来上がります。これを新サーバーに移動して、同じく管理画面⇒データーベースの画面から、「復元」ボタンを押すと、データーベース内のデータをすべてコピーできます。 > > ※どうやら「保存」を実行した場合に作成されるバックアップファイルは「mysql.dump」という名前(※リストアする時も同じファイル名にする必要あり。)のようですので、もし今後「保存」を実行してバックアップファイルを作成する場合は、先に同名のファイルがないか確認して、ダウンロードしておく事をおすすめします。 残っていたファイルが「mysql.dump.1220967566.backup」や「mysql_.1331299264.dump」という事ですが、定期的に作成されているようですか? 最新ではいつ作成されていましたか? ※WordPressの「サイトアドレス」や「WordPressアドレス」の変更では、テーブルの構成等の変更は行いません。 該当する項目のデータの変更のみですので、WordPressのデフォルトの機能が原因の可能性はほぼないと思います。(※プラグインが原因の可能性はあるかもしれませんが、公式のプラグインで人気のある物が原因である可能性は低いです。それなりにユーザー数が多いと思いますので、すぐに対処されていると思います。) 管理画面でのデータベースの操作が原因の可能性が一番高いのですが、WordPressのインストールは一度だけ行ったのでしょうか? 「sample」のテーブルが11個ですが、こちらはデフォルト状態のようです。 上に書いたように「復元」を実行するとユーザーのルートディレクトリにある「mysql.dump」の内容が復元されるようですが、バックアップファイルの内容を確認しないまま「復元」ボタンをクリックした事はありませんか? ※少し検索してみましたが、「復元」ボタンによるリストアの方法(※バックアップファイルの置き場所やファイル名など)が分からない人がけっこういるようでした。