[前][次][番号順一覧][スレッド一覧]

mysql:9696

From: <takeshi@xxxxxxxxxx>
Date: Tue, 22 Jun 2004 10:32:01 +0900
Subject: [mysql 09696] Re: db.optについて

村上です。

At Tue, 22 Jun 2004 00:36:44 +0900,
HIROSE, Masaaki wrote:

> A sjis の database を mysqldump でダンプして、mysqld
>   --default-character-set=utf8 なサーバーにレストアした。database の文
>   字コードが sjis になっているつもりで、文字コード指定を省略して
>   CREATE TABLE したら table の文字コードが sjis ではなく、utf8 になっ
>   てしまった。[8]
>   → 無用なトラブルを回避するために、4.1 での CREATE TABLE には
>      DEFAULT CHARSET をつけるようにした方がいい?

dump と default-character-set が違う場合の他の対策は、
CREATE DATABASE ... DEFAULT CHARACTER SET sjis としたデータベースを作ってそこに流し込む
ぐらいですかねぇ、思いつくのは


> B database mysql と test には db.opt がないので、これらの database で
>   DEFAULT CHARSET なしで CREATE TABLE した場合の table の文字コードは
>   変数 character_set_database の値によって恣意的に決定されてしまう。
>   [6,9]
>   → character_set_database を変えたりしない、mysql の table に入れるデー
>      タは専ら us-ascii だけ、test はあくまでテスト用の database である、
>      という理由で、実際に問題になる局面は少ないかも?

> C db.opt がない database で DEFAULT CHARSET を省略した CREATE TABLE で
>   作った table の文字コードは、SHOW CREATE DATABASE で表示される
>   database の文字コードと異なる場合がある。[5,9]
>   → 無用なトラブルを回避するために、4.1 での CREATE TABLE には
>      DEFAULT CHARSET をつけるようにした方がいい?

想像ができなかったので、現象が起きる例をみせていただくと
ありがたいです

> 結局、
> db.opt がある/ないに関わらず、database の文字コードには依存しないよう
> に、CREATE TABLE には DEFAULT CHARSET をつけるようにする、というのが安
> 全ということでしょうかね。

3.X, 4.0 と同様に、
サーバー、クライアントは同じ character set を使うようにして
運用するのがトラブルが少ないかと。扱う文字コードも固定。
色々なcharacter setを使ったり、文字コードの変換を使うのは
特別な場合に限るような運用の方が、トラブルや現アプリの移行の
手間は少ないでしょうねぇ。

これに加えて client が binary で接続すれば、さらにトラブルは
減るでしょう。


それと
"character_set_* 変数をいじらないといけないの?面倒だね"
というように思ってしまう人が もし出てきてしまったら嫌なので
言いますが、
character_set_* 変数は --default-character-set や
SET [CHARACTER|NAMES]文によりセットされるので、
character_set_* 変数は、通常は忘れます。私は忘れています。それで良し.
トラブルの時にだけ、character_set* 変数を見るだけです。
サーバー、クライアントの --default-character-set だけを
使う運用(SET文も使わない)が単純。

================
村上 takeshi@xxxxxxxxxx

[前][次][番号順一覧][スレッド一覧]

      9694 2004-06-22 00:36 ["HIROSE, Masaaki" <h] db.optについて                          
->    9696 2004-06-22 10:32 ┗[<takeshi@xxxxxxxxxx>]                                       
      9697 2004-06-22 12:16  ┣["HIROSE, Masaaki" <h]                                     
      9701 2004-06-23 10:17  ┃┗[<takeshi@xxxxxxxxxx>]                                   
      9698 2004-06-22 13:58  ┗[Hirofumi Fujiwara <f]