この原因は以前私が出した質問からわかったものです
⇒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サイトの方は問題なくログイン・表示できています。
対策方法がお分かりになる方いらっしゃいましたら、お助け願います。
どうぞ宜しくお願い致します。
遅くなりましてすみません。
状況がある程度分かったので回答させていただきます。
バックアップしてあったファイルが正常であれば再インストールは必要ありませんので、まずはデータのリストアを行います。(※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」の内容が復元されるようですが、バックアップファイルの内容を確認しないまま「復元」ボタンをクリックした事はありませんか?
※少し検索してみましたが、「復元」ボタンによるリストアの方法(※バックアップファイルの置き場所やファイル名など)が分からない人がけっこういるようでした。
WordPressのインストールで使用中のデータベースを指定したとしても、他のアプリケーションで使用中のテーブルを消去する事はありません。(※Wordpressの各テーブル名とMTの各テーブル名とはすべて異なりますので、上書きもされないはずです。)
手動で消去した記憶など、何か操作した覚えはないでしょうか?
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
その2つ以外にデーターベースはないのでしょうか?
MTは別のアカウント(※現在未使用あるいは削除済み)でインストールしたという事はないでしょうか?
データベースが見つからない場合、カスタマイズしていた箇所は作成し直すしかないと思います。
※テンプレートやウィジェットの編集等は、すべてデータベースに保存されています。
記事に関しては、サイトのデータがあれば復元できたように思います。
xreaはプラスサービスを契約しています。作ったDBは2つだけです。
MTを別のアカウントでインストールしたことは、ありません。
もちろんバックアップはとっていませんが、mysqlのコマンドを使って過去のデータを復元させることは不可能でしょうか?
カテゴリごとにデザインを変えるプラグインを使っていたので設定・復元にかなり時間がかかってしまいそうです。
サイト上にはデータが残っているのでとてももどかしいです。
もう一点気になるのですが、現在ログイン画面のログインボタン(mt.cgiへのリンク)を押すと自動的に「mt-upgrade.cgi?__mode=install」へ転送されてしまうのですが、このまま再インストールすると現在web上にあるデータは全て消えてしまうのでしょうか?
インストール時にサイトのURLを入力したと思いますが、以前と違うURLになるように、違うディレクトリを指定すれば消えないはずです。
http://www.movabletype.jp/documentation/installation/install_wizard.html
※「6.最初のブログを作成」を参照
http://www.koikikukan.com/archives/2008/11/01-015555.php
※「3.8 ブログ情報設定」を参照
まずはいただいたURLより再インストールを進めてみたいと思います。
バックアップについてですが、DBの内容がよくわからないので、これはこれでとっておき、新しいDBを使ってMTをインストールしようとしたところ、ルートディレクトリにいくつかのdumpとbuckup拡張子のファイルがあることがわかりました。
サーバー側の機能かプラグインで保存したかはわかりませんが、mysql.dump.1220967566.backup や mysql_.1331299264.dump というようなファイルがあります。
これらのファイルを使えばもしかしたらDB復元は可能ではないかと思いました。
その場合新しいMTをインストールして新しいDBを作り、そこに復元してそれぞれのファイルを確かめてみるのがいいのかなと思っていますが、これについてどのように思われますでしょうか?
なにか不備や注意点等ありましたら、教えて頂けますと幸いです。
どうぞ宜しくお願いいたします。
mysqldump等で保存したバックアップでしたら、テキストエディタでファイルの内容を確認できます。
※テーブルの出力、テーブル内データの出力がSQLでテーブルの数だけ繰り返し記述されていますので、各テーブル名を確認してみてください。
WordPressとは違うようでしたら、MTのデータの可能性があると思います。
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 として表示させる設定を、ダッシュボードの設定⇒一般⇒サイトアドレスより行いました。
これが原因になる可能性はありますでしょうか?
とにかくほぼ解決に向けた方法が見えてきたように思います。
どうもありがとうございます。