MYSQLの文字コード変換について教えてください。

WindowsにインストールしたMySQL5.5があります。
文字コードはutf8になっています。

全てをcp932に変更したいと思います。
問題なのは、対象テーブルと対象カラムです。
これらも全てutf8で設定されています。
よって、対象テーブル、対象カラムを全て一括で
cp932に変換したいと思います。
1つ1つ変換していく方法ならわかるのですが、
対象カラムなんてひとつひとつcp932に変換していたら
大変な労力が必要になります。一発でできるような
方法はないでしょうか?

サーバー全体,対象データベース,対象テーブ ル,対象カラム

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2011/06/29 16:15:10
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答2件)

id:windofjuly No.1

回答回数2625ベストアンサー獲得回数1149

ポイント150pt

方法は色々ありますが、手っ取り早いのはmysqldumpで文字コードを指定して旧データベースからCP932で引っ張り出し、別のディレクトリに復元する方法になるでしょう(my.cnfの設定を変えるだけで元のデータベースを利用することも出来ますのでテスト環境構築などにも使える手法です。もちろんバックアップにも使えます)

 

1.mysqldumpでバックアップ(cp932の指定は必須。他は適宜)

http://dev.mysql.com/doc/refman/5.1/ja/mysqldump.html

mysqldump --add-locks --default-character-set=cp932 -e -l -Q データベース名 > バックアップファイル名

ファイルの中身はテキストなので、テキストエディタでCP932になっているかを確認しておくと良いでしょう

 

2.データベースディレクトリとキャラクタセット設定の変更

MySQL設定ウィザードを用いると良いかもしれません(私は使ったことありません)

http://dev.mysql.com/doc/refman/5.1/ja/mysql-config-wizard-starting.html

旧データベースとは違うフォルダを指定して、キャラクタコードもcp932を指定しておくと良いでしょう

設定ウィザードが正しく起動できない場合はmy.iniファイルを検索して探し、テキストエディタでキャラクタセットの指定を追加します

[mysqld]
datadir="データベースを保存するフォルダ"
default-character-set=cp932
[mysql]
default-character-set=cp932
[mysqldump]
default-character-set=cp932

 

3.バックアップから再構築

mysqldump データベース名 < バックアップファイル名
id:popattack

おぉ、この方法でとりあえずできました!ありがとうございます!

2011/06/29 11:12:55

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません