人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

[mysqldumpの文字化け]文字コードをlatin1で作ってしまっているDBを文字化けせずにmysqldumpで取得したいのですが、うまい方法が思いつきません。phpmyadminを経由すると何故か文字化けしないのですが、データサイズが肥大化してしまっているために、これで頻繁にバックアップを取るのは辛い状況です。何か良案はないでしょうか?

・シェルログインはできるが、my.cnf変更権限はない。
・show variables like '%char%';で確認したところ、character_set_system以外latin1がセットされている。
・mysqlのバージョンは4.1.18


●質問者: res01
●カテゴリ:インターネット ウェブ制作
✍キーワード:Char dB MySQL phpMyAdmin うまい
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● shintabo
●40ポイント ベストアンサー

# latin1だったら、latin1で取得すれば文字化けしないかと思うのですが、、、

mysqldump -uroot -p db_name --default-character-set=latin1 > db_name.latin1.db

# これは参考にならないですか?

# http://modperlis.bounceme.net/2009/03/movabletype41mysqllatin1ut...

◎質問者からの返答

ご回答ありがとうございます。

私も普通は化けないと思っていたのですが・・・何か見落としがあるのかもしれません。

dumpは手当たり次第に文字コードを指定して試しましたがだめでした。。

どのエンコードタイプでも開けないということはdump時点でデータが死んでるのかもしれません。


2 ● snow_leopard
●13ポイント

そういうところは使わないのが一番です。

◎質問者からの返答

そうですね。その通りだと思います。


3 ● shintabo
●40ポイント

# むー、だめですか。。。

# これだけ、試してもらえませんか?

mysqldump -uroot -p db_name --default-character-set=latin1 --skip-set-charset > db_name.latin1.db

# うまくいきますように。。。

◎質問者からの返答

ありがとうございます。

その通りコマンドを打ってみましたがやはり文字化けしています・・・

その後色々調べてみたのですが、mysqldump --helpで状態を見てみたら、default-character-set=binaryが標準で指定されていて、

コマンドでこれを指定してもbinaryになっていることがわかりました。(nkf -gで確認しました。)

しかしバイナリエディタで中身を確認してもやっぱり文字化けの状態は変わっていませんでした。

短期的な解決は難しいと判断してphpから取得するようにします。

ご丁寧に回答いただいたのにすみません。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ