バージョンアップ時にデータ移行したら文字化けするようになりました

1,087 views
Skip to first unread message

moomindani

unread,
Aug 1, 2013, 10:40:34 AM8/1/13
to redmine-...@googlegroups.com
moomindaniと申します。

Redmineのバージョンアップを実施したところ、
画面上の日本語部分が文字化けするようになりました。
この文字化けを解決する方法があれば、ご教示いただけないでしょうか?

■環境
移行元:Redmine 1.2.2 / CentOS 6.1 (32bit)
移行先:Redmine 2.3.1 / CentOS 6.4 (64bit)

■移行手順
(移行元)
$ mysqldump -u alminium -p --default-character-set=latin1 alminium > alminium.dump
※default-character-setを指定しない場合、utf8を指定する場合、binaryを指定する場合をそれぞれ試しましたが、
  いずれもダンプファイル内の日本語が文字化けしたため、上記のようにしています。

(移行先)
$ mysql -u alminium -p alminium < alminium.dump

■チェックした点
・出力したダンプファイルをlessコマンドで見たところ、文字化けは発生していませんでした。
・移行先でダンプファイルをリストアした後に、mysqlコマンドでテーブルの中身を見たところ、文字化けは発生していませんでした。
・ダンプファイル上、テーブルの文字コード(DEFAULT CHARSET)はutf8となっていました。
・移行元、移行先の文字コードを下記の通り確認しましたが、同一となっていました。
mysql> show variables like "char%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | latin1                     |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

・移行元、移行先の/etc/my.cnfの設定内容は同一でした。
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid


moomindani

unread,
Aug 1, 2013, 10:47:18 AM8/1/13
to redmine-...@googlegroups.com
追伸です。手順に漏れがございました。

(移行先)
$ rake db:migrate RAILS_ENV="production"

DBのマイグレーションは正常に完了しているように見えます。
表示上の文字化けだけ問題として残っており、これを解決したいです。
もし類似のケースにハマった方や、お心当たりのある方がいらっしゃいましたら、
ご助言頂けますと幸いです。よろしくお願いします。

2013年8月1日木曜日 23時40分34秒 UTC+9 moomindani:

TAKAHASHI,Toru

unread,
Aug 2, 2013, 9:36:18 PM8/2/13
to redmine-...@googlegroups.com

高橋です。

MySQLの文字コード設定に不整合があるように思われます。

「Redmine 2.3をCentOS 6.4にインストールする手順」(次のURL)
http://blog.redmine.jp/articles/2_3/installation_centos/

に「MySQLの設定」という節がありますので、その設定手順に沿って
my.cnfを修正し、show variables like 'character_set%'; の結果が
上述手順書に示されるとおりになっているか確認してみるとよいかと
思います。

上述手順書に”latin1になっている項目があれば、/etc/my.cnfの設定が
正しいか確かめて下さい。”とあります。

以下の結果を見ると、本来utf8となるべきところがlatin1になっています。
おそらく、データベース自体には文字データがutf8で格納されたものの、
クライアント側はlatin1で扱うよう設定されているので、本来不要な
utf8->latin1変換がかかって表示が化けたものではと推測します。

Noritaka Sekiyama

unread,
Aug 3, 2013, 3:44:27 AM8/3/13
to redmine-...@googlegroups.com
高橋さん

お返事ありがとうございます。

教えて頂いたURLに従ってmy.cnfを設定し、
加えてダンプファイルを若干修正したところ、
文字化けを回避することができました。

(修正前)
/*!40101 SET NAMES latin1 */;


(修正後)
/*!40101 SET NAMES utf8 */;


本当に助かりました。ありがとうございました。

--
Noritaka Sekiyama
Twitter: @moomindani
Blog: mooapp http://moomindani.wordpress.com (http://moomindani.wordpress.com/)


日付:2013年8月3日土曜日、時刻:10:36、差出人:TAKAHASHI,Toru:
> --
> このメールは Google グループのグループ「Redmine Users (japanese)」の登録者に送られています。
> このトピックの登録を解除するには、https://groups.google.com/d/topic/redmine-users-ja/Ke2bprgTNoU/unsubscribe にアクセスします。このグループから退会し、グループのすべてのトピックの登録を解除するには、redmine-users-...@googlegroups.com (mailto:redmine-users-...@googlegroups.com) にメールを送信します。
> このグループに投稿するには、redmine-...@googlegroups.com (mailto:redmine-...@googlegroups.com) にメールを送信してください。
> http://groups.google.com/group/redmine-users-ja からこのグループにアクセスしてください。
> その他のオプションについては、https://groups.google.com/groups/opt_out にアクセスしてください。



Reply all
Reply to author
Forward
0 new messages