WindowsにインストールしたMySQL5.5があります。
文字コードはutf8になっています。
全てをcp932に変更したいと思います。
問題なのは、対象テーブルと対象カラムです。
これらも全てutf8で設定されています。
よって、対象テーブル、対象カラムを全て一括で
cp932に変換したいと思います。
1つ1つ変換していく方法ならわかるのですが、
対象カラムなんてひとつひとつcp932に変換していたら
大変な労力が必要になります。一発でできるような
方法はないでしょうか?
サーバー全体,対象データベース,対象テーブ ル,対象カラム
方法は色々ありますが、手っ取り早いのは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 データベース名 < バックアップファイル名
おぉ、この方法でとりあえずできました!ありがとうございます!