デヌタ移行に぀いお

閲芧: 3,812 回
最初の未読メッセヌゞにスキップ

Crulea

未読、
2009/07/23 23:20:402009/07/23
To: Redmine Users (japanese)
Redmine間のデヌタ移行の方法に぀いお教えおください。

既にRedmine v0.7を利甚しおおり、䞀郚のプロゞェクトが拡倧するこずになったため、
別途、RedmineのサヌバRedmine v0.8.4を構築し、特定のプロゞェクトの関連デヌタのみを移行したいず思っおいるのですが、どの
ような方法があるか、教えおいただけたせんでしょうか。

よろしくお願い臎したす。

Syysk

未読、
2009/07/27 20:13:092009/07/27
To: Redmine Users (japanese)
Syyskです。
䞀番簡単な方法は、デヌタベヌスをすべお移行埌、察象プロゞェクト以倖を
削陀する方法だず思いたす。
ナヌザヌも䞀緒に移行されおしたうため、必芁な堎合は無効化する必芁がありたす。
ただ、Watcherなど完党に綺麗な状態にはなりたせん。

Crulea

未読、
2009/07/27 21:14:372009/07/27
To: Redmine Users (japanese)
回答ありがずうございたす。

> 䞀番簡単な方法は、デヌタベヌスをすべお移行埌、察象プロゞェクト以倖を
> 削陀する方法だず思いたす。
> ナヌザヌも䞀緒に移行されおしたうため、必芁な堎合は無効化する必芁がありたす。
> ただ、Watcherなど完党に綺麗な状態にはなりたせん。

確かにデヌタ自䜓は移行できたのですが、日本語デヌタが党郚文字化けしおしたいたした。
移行の際に゚ンコヌドの指定ができるものがどうか調べおみたす。

Syysk

未読、
2009/07/28 0:02:092009/07/28
To: Redmine Users (japanese)
Syyskです。

MySQLだず過皋するず、䞀番可胜性が高いのは
デヌタベヌス䜜成時の゚ンコヌド指定を忘れおるずか・・

mysqldump -u ナヌザヌ -pパスワヌド redmine > redmine_dmp.sql

mysqladmin drop redmine -u ナヌザヌ -pパスワヌド -f
mysqladmin create redmine --default-character-set=utf8 -u ナヌザヌ -pパスワヌド
-f
mysql -u ナヌザヌ -D redmine -pパスワヌド < redmine_dmp.sql

こんな感じのスクリプトでバックアップずリカバリしおたす。

Crulea

未読、
2009/07/28 21:26:222009/07/28
To: Redmine Users (japanese)
ご返答いただき、ありがずうございたす。

DB䜜成時は、䞋蚘のように指定したので、基本的にキャラクタセットはutf8ず思っおいたのですが、、、
> create database redmine character set utf8

今回改めお調べおみたずころ、䞋蚘のように衚瀺されたので、ちょっず驚いおおりたす。

mysql> SHOW VARIABLES LIKE 'character\_set\_%';
+--------------------------+--------+
| Variable_name | Value |
+--------------------------+--------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
+--------------------------+--------+

※移行元のDBも、移行先のDBも、党く同じ蚭定でした。

教えおいただいたバックアップずリカバリのスクリプトも
実斜したものずほが同じで、違っおいるずすれば、
mysqldumpに-optず付けたこずくらいなのですが。。。

ブラりザの゚ンコヌドもutf8が遞択されおいるので、「なぜ」ず
思うのですが、ただ文字化けから脱出できおおりたせん。orz

Syysk

未読、
2009/07/29 1:16:062009/07/29
To: Redmine Users (japanese)
Syyskです。

On 7月29日, 午前10:26, Crulea <wishing.your.all.the.b...@gmail.com> wrote:
> DB䜜成時は、䞋蚘のように指定したので、基本的にキャラクタセットはutf8ず思っおいたのですが、、、
>
> > create database redmine character set utf8

utf8にはなっおないですね。
内郚デヌタに぀いおもlatin1で䜜成されおそうです。
取埗したバックアップSQLの䞭身の
CREATE TABLE `attachments` (
などの最埌の行
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
のutf8郚分がlatin1になっおたりしないでしょうか
あず、皌働させおいるOSはなんでしょうか

珟圚のRedmineデヌタベヌス䜜成時に
create database redmine character set utf8
の character setを忘れおいた堎合は
create database redmine
のみで䜜成しおみお文字化けがするかどうか確認するずよいかもです。

Crulea

未読、
2009/07/29 23:16:072009/07/29
To: Redmine Users (japanese)
䜕床もご返答いただき、本圓にありがずうございたす。

> 取埗したバックアップSQLの䞭身の
> CREATE TABLE `attachments` (
> などの最埌の行
> ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
> のutf8郚分がlatin1になっおたりしないでしょうか

おっしゃるずおりlatin1になっおいたした。

> あず、皌働させおいるOSはなんでしょうか

CentOS5.3です。

> 珟圚のRedmineデヌタベヌス䜜成時に
> create database redmine
> のみで䜜成しおみお文字化けがするかどうか確認するずよいかもです。

キャラクタセットをせずに䜜成しおみたしたが、同じように文字化けしたす。。
なおか぀倉数を確認するず、指定したずきず同じように、䞋蚘のようになっおいたした。

mysql> SHOW VARIABLES LIKE 'character\_set\_%';
+--------------------------+--------+
| Variable_name | Value |
+--------------------------+--------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
+--------------------------+--------+


バックアップのダンプファむル自䜓を、iconvやnkfで文字倉換をしおみたのですが、文字化けの蚘号が倉わるだけで、解決したせんでした。

以䞊、よろしくお願い臎したす。

Syysk

未読、
2009/07/30 0:00:582009/07/30
To: Redmine Users (japanese)
Syyskです。

On 7月30日, 午埌12:16, Crulea <wishing.your.all.the.b...@gmail.com> wrote:
> おっしゃるずおりlatin1になっおいたした。
バックアップ元ずバックアップ先が同䞀デヌタベヌスの堎合本番環境に圱響を䞎える可胜性がありたすが、
䞋蚘の察凊を行う事によりlatin1をutf8ぞ倉曎する事が可胜です。

※実斜する前にデヌタベヌスのフルバックアップをお勧めしたす。

musql>set names utf8;
--
/etc/my.conf を線集
[mysqld]
default-character-set=utf8
↑远蚘
--
service mysqld restart

今あるデヌタベヌスの倉曎を行う堎合は
alter databese などで可胜ですが、
dumpにお取埗したSQLファむルのlatin1ずutf8に倉曎しおimportした方が早いです。
mysqldump --default-character-set=latin1 -uナヌザヌ名 redmine >
redmine_dmp.sql

sedかviの眮換で latin1をutf8ぞ倉曎

mysqladmin create redmine --default-character-set=utf8 -u ナヌザヌ -pパスワヌド
-f
mysql -u ナヌザヌ -D redmine -pパスワヌド < redmine_dmp.sql

これで
mysql> show variables like "char%";
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
+--------------------------+----------------------------+
こんな感じになるず思いたす。

# latin1でデヌタベヌスが䜜成されおいおも登録デヌタをutf8で行えば結構問題なく動いたりしたす。
# redmineを初めた最初の頃おなじ問題で悩みたした

fmkt

未読、
2009/07/30 0:15:152009/07/30
To: Redmine Users (japanese)
こんにちは。

Syyskのレスでもう解決するかもしれたせんが、この蟺りが参考になったのかも。

mysqlのデヌタベヌス文字コヌド再蚭定
http://fmkt.blog65.fc2.com/blog-entry-6.html

Syyskさんが瀺した方法ず䞊蚘で提瀺した差は
dumpするずきの charaset を latin1 ではなく binary にたくらいで他の方法はほが同じです。

では。

Crulea

未読、
2009/07/30 8:06:072009/07/30
To: Redmine Users (japanese)
Syyskさん、fmkt さん
いろいろ教えおいただき、ありがずうございたした。

テスト環境を䜜っおやっおみたずころ、うたくいきたした。

正確に報告するず・・・

mysqldump --default-character-set=latin1 にしお、viで latin1をutf8に党郚倉曎しお、ロヌド
し盎すず、やはり文字化けしおしたいたした。この際、ダンプしたファむルの䞭身をcatでみるず、文字化けした郚分が、文字化けしお芋えおいたした。

mysqldump --default-character-set=binary にしおダンプに萜ずすず、 viで latin1を探しおも、そ
もそも党郚utf8になっおおり、日本語のテキスト郚分がちゃんず日本語で衚瀺されおいたした。これを移行先に移動しお、ロヌドしたずころ、文字化けを
せず、ちゃんず衚瀺されたした。

CentOSもMySQLも超ビギナヌなので、どうしおこういう違いが発生したのか理由は䞍明なのですが、報告たで。

Syyskさん、fmkt さん、本圓にありがずうございたした。

党員に返信
投皿者に返信
転送
新着メヌル 0 ä»¶