おしりんブログ

新人PGおしりんの色々まとめるよブログ

君に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%';


WindowsMySQLのデフォルトは
エクスポート時の文字コード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月全然ブログ更新しなかったなー
だめだなー

ちょっと早いけどおやスヤァませ