データベースがインポートできない
さくらインターネットでデータベースの復元ができません。
ファイルをサーバへFTPでアップし、
phpMyadminにてローカル環境で作成したデータベースをインポートしたのですが、
下記のエラーが出てしまいます。
-----------------------------------------------------
Fatal error: Uncaught exception 'ADODB_Exception' with message 'mysqlt error: [1146: Table '*****_db.Config' doesn't exist] in EXECUTE("select * from Config where uID = 0 order by cfKey asc") ' in /home/*****/www/concrete/libraries/3rdparty/adodb/adodb-exceptions.inc.php:78 Stack trace: #0 /home/*****/www/concrete/libraries/3rdparty/adodb/adodb.inc.php(1074): adodb_throw('mysqlt', 'EXECUTE', 1146, 'Table 'shock-lu...', 'select * from C...', false, Object(ADODB_mysqlt)) #1 /home/*****/www/concrete/libraries/3rdparty/adodb/adodb.inc.php(1049): ADOConnection->_Execute('select * from C...', false) #2 /home/*****/www/concrete/core/models/config.php(182): ADOConnection->Execute('select * from C...') #3 /home/*****/www/concrete/core/models/config.php(173): Concrete5_Model_ConfigStore->load() #4 /home/*****/www/concrete/core/models/config.php(48): Concrete5_Model_ConfigStore->__construct() #5 /home/*****/www/concrete/core/models/config.php(68): Concrete5_Model_Config::getStore() #6 /home/sh in /home/*****/www/concrete/libraries/3rdparty/adodb/adodb-exceptions.inc.php on line 78
※サイト名を*****にて伏せています。
-------------------------------------------------
どうやら、「Config」という名のテーブルが無い、ということの様なのですが、
インポートしたテーブル郡には「config」というテーブルは存在します。
試しにテーブル名を「Config」に変更してみると、
「予期せぬエラーが発生しました。」となり、エラーは違うところへ移った様子…。
テーブル名の大文字と小文字の違いを判定しているのかなと思います。
ちなみに、テーブルを再度、空にして、
ブラウザ上からログインIDなども入力してconcrete5をインストールしてみると、
データベース内にできたテーブル郡は「Config」や「BlockTypes」など、
大文字も含まれたテーブル名になっていました。
ローカルでインストールした時はすべて小文字のテーブルなので、
インポートしても違うテーブルとみなされて整合性が取れていないような状況です。
照合順はutf8_general_ciになっています。
何か設定など不足があるのでしょうか?
ローカルでバックアップしたデータを利用するための解決方法はありますでしょうか?
さくらインターネット スタンダード
PHP 5.4
MySQL クライアントのバージョン: 5.5.28
concrete5 5.6.2.1
ご教授お願い致しますm(__)m
Re: データベースがインポートできない
データベース名を修正するにはフリーの専用のアドオンが公開されています。
Database Case Sensitivity Migration (MySQL)
http://www.concrete5.org/marketplace/addons/database-case-sensitivity-migration/
このアドオンは管理画面からはインストールできないので、リンク先の「Download Archive」をクリックしてダウンロードし、zipを解凍してユーザー領域のpackagesフォルダ(インストール直後に空の方)にアップロードしてください。そうすると、管理画面の[concrete5を拡張 - インストール]に表示されますので、インストールします。今回の場合は、ローカルで構築したconcrete5サイトでインストールします。
このアドオンを使ってデータベーステーブル名を修復するには、次の手順で行ないます。
1. MySQLサーバーの設定ファイル(my.iniまたはmy.cnf)を変更する必要があります。lower_case_table_names=0 という行を追加してください。
2. MySQLを再起動します。XAMPPであればXAMPPの再起動で大丈夫です。
3. [管理画面→システムと設定→バックアップとリストア→Database Migration]ページに移動します。
4. 「Run Migration」ボタンをクリックします。
「Migrated successfully!」と表示されたら成功です。サーバーへのインポートを再度試してみてください。
※ さくらインターネットとは関係ない投稿でしたので、スレッドを移動させていただきました。
Re: データベースがインポートできない
Re: データベースがインポートできない
lower_case_table_names = 2とすると起動しますので、先の手順で進めたのですが、Migrade後にデータベースをエクスポートしましたが、configテーブルの名称のcは小文字のままでした。
lower_case_table_names = 0としてMySQLを起動するにはどうしたらいいでしょうか?
XAMPPは5.6.15 / PHP 5.6.15をDLしてインストールしました。
acliss
Re: データベースがインポートできない
config/site.php の内容も変更しないといけません。
それは行われましたか?