君にDUMP(改)
(君にBUMP)
いい加減同じとこでひっかかりたくないのでメモ。
Dumpファイルをインポートしようとすると、
絶対何かしらでつまずく。
基本的にはこの手順でいける
DUMPファイルを流し込むDBを作成していない場合
・mysqlに接続
mysql -u [user_name] -p →[password]
・DB作成、移動
create database [db_name]
DUMPファイルをエクスポートしたDBと同じDB名を指定
・インポート
source [path/to/dumpfile]
既にDUMPファイルを流し込むDBを作成している場合
・ログインと同時にインポート
mysql -u [user_name] -p < [path/to/dumpfile] →[password]
インポート時にエラーが発生した時は、DUMPファイルの大きさと文字コードを確認する。
サイズの大きなDUMPファイルをインポートする時は
max_allowed_packetのサイズを変更する
set global max_allowed_packet = 10000000000000000000;
何故かインポートが上手くいかない…と思ったら
サーバ側とクライアント側の文字コード、
DUMPファイルをインポートする時の文字コードを確認する
show variables like 'char%';
Windows版MySQLのデフォルトは
エクスポート時の文字コード→UTF-8
サーバー側の文字コード→UTF-8
クライアント側の文字コード→cp932になっていると思う。
クライアント側とサーバー側の文字コードが異なっていると
クライアントからデータベースに格納するためにデータを送信する時や
データベースに問い合わせを行って、
結果をサーバ側からクライアント側へ返す場合も
途中で文字化けが発生することがある。
ので、クライアント側の文字コードを変更する。
MySQL起動時に
mysql -u [user_name] [db_name] -p --default-character-set=utf8
とするか、
設定ファイルであるmy.ini(OSによって拡張子が異なる)に
[client]
default-character-set=UTF-8
と追記する。
多分これで解決すると思う…
最終手段はバイナリファイルとして読み込むことなのかなー
ちなみにエクスポートする時のコマンドは
mysqldump -u [user_name] [db_name] -p > [dumpFile_name]
特にオプションを指定しなくても、UTF-8でファイルを作成してくれると思うけど
念のため指定しておいた方がいいかもなデフォ文字コード
--default-character-set=utf8
テーブルの構造だけをエクスポートしたい場合は
mysqldump -u [user_name] -d --add-drop-table=false [db_name] -p > [dumpFile_name]
文字化け対策以外なら、このサイトにもっと詳しく載ってるで~
http://napzak.com/tips/?MySQL%E3%81%AE%E3%83%80%E3%83%B3%E3%83%97%EF%BC%88%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%9D%E3%83%BC%E3%83%88%EF%BC%89%E3%80%81%E3%82%A4%E3%83%B3%E3%83%9D%E3%83%BC%E3%83%88%E3%80%81%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97
8月全然ブログ更新しなかったなー
だめだなー
ちょっと早いけどおやスヤァませ