
サーバー移転のため、Movable Typeのデータベースをエクスポートしました。
移転先のサーバーにphpMyadminがインストールされていましたので、リストアしようとしましたが▼次のエラーが出ました。
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 1195097 bytes) in /usr/home/MY HOST/www/htdocs/phpmyadmin/libraries/sqlparser.lib.php on line 212
データが2MB以上あるため、大きすぎたのかと思い、ネットで調べた▼次の方法をTera Termで試しました。
mysql -u MY HOST -p PASSWORD mt < /usr/home/MY HOST/www/htdocs/backup.sql
この方法でテーブルの構造はできあがるのですが、エントリーなどが反映されません。
何かよい解決方法をご存知の方がいらっしゃいましたら教えてください。
No.2ベストアンサー
- 回答日時:
エクスポートしたバックアップファイル(backup.sql)
は、おそらく、CREATE文のあとに、INSERT文が続くSQL文になっていると思います。
状況は、CREATE文が入るのに、INSERT文が入らないということですので、INSERT文で落っこちているのではないでしょうか?
移行元、移行先のMysqlのバージョン、文字コード、エクスポートしたバックアップファイルの文字コードはいかがでしょうか?スキーマは入って、データが入らないというのは、そういうことが原因のことがよくあります。
(つまり、CREATE文では、テーブル名が英語の場合、文字コードは関係なくリストアできてしまいますが、INSERT文では、内容に日本語が入ってくると、そこで落ちてしまうということです。)
移行先のMySQLに関するこれらの情報は、phpMyAdminで確認出来ると思います。または、Tera Termでmysqlに入って、\sでキャラクタセットを確認できます。
ただし、もし4.1以降のMySQLへのリストアになる場合、ちょっと難しいことを補足しておきます。
たとえば、EUC-JPのバックファイルをリストアするときには、
----------------------------------
$ mysql -u MY HOST -p mt
----------------------------------
----------------------------------
set names ujis;
----------------------------------
(↑接続する文字コードの設定。
ファイルの文字コードがEUCの場合ujis、
Shift-JISの場合sjis、UTF-8の場合は、utf8)
----------------------------------
\s
----------------------------------
(Client characterset:が指定したものに
変わっていることを確認する)
----------------------------------
source /usr/home/MY HOST/www/htdocs/backup.sql
----------------------------------
(↑sourceコマンドでファイルからSQLを実行)
という手順になります。
ただ、4.0以前のMySQLからのバックアップを4.1以降にリストアするときには、データベース、テーブルの文字コードはUTF-8に勝手に変換されてしまいますので、指定したい場合は、さらに、4.1向けにCREATE文の書き直しが必要です。
また、4.1以降ですと、アプリの方がきちんと文字コード処理をやってくれるかどうかの問題もあります。
No.1
- 回答日時:
これってイレギュラーですが・・・
単純にMySQLのTOPディレクトリー(/var/lib/mysql)を移動先にコピーしてユIDとパーミッションを合わせて稼動しませんか?
私が MySQL が何かを調査中にシステムがクラッシュして、dumpテープから上記の手順でリカバーしたら完璧に戻って驚いた経験があります ^ ^;
Oracleの経験が長いので MySQL は軽薄?と思えるほどの軽量さだなぁ~と驚嘆しましたが、本当に助かったです
環境は turbolinux です。
この回答への補足
qaz_qwerty_meさん、お返事ありがとうございます。
教えていただいた方法は思いもよりませんでしたが、移転前も移転先もレンタルサーバーのため権限がなく恐らく不可能であるように思います。
サーバーに関してはど素人で、検索していろいろ試していますが何をやってもリストアできません。
データを分割したり、テーブルごとにリストアするような方法はないものでしょうか?
移転を急いでいたため、前のサーバーにもデータは残っていません。
データ数は1000件ほどなので、ひとつずつ手入力した方が早いような気がしてきました・・・
もし何か他に対処方がありましたら引き続きよろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
mysqlがインストールされている...
-
#1062 - '0' は索引 'PRIMARY' ...
-
データベースの接続に失敗して...
-
[XAMPP Control Panel v3.2.4] ...
-
下記の問合せを行うクエリを、P...
-
テーブル名が可変の場合のクエ...
-
テーブル作成時のカラムについて
-
同一日に複数レコードがある場...
-
MAMP 99ドル約1.6万円 高い...
-
あってますか?SQL
-
WHERE `年月日` = '晴' OR `年...
-
SQLです教えてくださいお願いし...
-
SQLを作ったのですがうまくいき...
-
(初心者)MySQLやmaraDBで、crea...
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
-
SQLです教えてください。
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MySQLカラム名は日本語と英数字...
-
文字コードMS932(Windows-31J...
-
日本語TSVファイルのLOAD DATA ...
-
存在しているファイルがロード...
-
my sqlで文字化け
-
日本語のデータがインポートで...
-
SQL Server のキャラクターセッ...
-
mysqlがインストールされている...
-
ODP.NETのバージョン確認
-
副問合せにLIKE文を使う方法は...
-
SQLのVARCHARとVARCHAR2の違い
-
エクセルで連勤チェックをした...
-
ERROR 1045 (28000) (using pas...
-
旧filemakerで和暦(令和など)...
-
列数が多いと結果が行単位に改...
-
Usage: \\.<filename> | sourc...
-
VBAで変数内に保持された二次配...
-
INT型は金額の型に使用するべき...
-
like句を使って日本語を検索す...
-
mysqlへのインポート処理がうま...
おすすめ情報