村上です
At Tue, 09 Nov 2004 00:53:15 +0900,
George Akimoto wrote:
秋元です。
default-character-set=sjisとしても、
character_set_systemがutf8になってます。
これはテーブル名とかコラム名を格納する際に使われているみたいですが、
utf8に固定でmy.iniなどでの上書きもできなさそうです。
適当なテーブルを作ってみたところ、確かにファイル名はUTF8でした。
4.1では、テーブル名、フィールド名は、UTF に変換して保存します。
4.0 までの、バイナリスルーにするには、ソースを変えるしかないです。
しかし、それほど大変な変更じゃなく、これだけ。
これで、テーブル名、フィールド名は、UTF に変換されません。
# 他に害がでるかどうかは充分な検証が必要です。
diff -u mysql-4.1.8pre/sql/mysqld.cc.orig mysql-4.1.8pre/sql/mysqld.cc
--- mysql-4.1.8pre/sql/mysqld.cc.orig 2004-11-28 07:40:38.000000000 +0900
+++ mysql-4.1.8pre/sql/mysqld.cc 2004-11-28 07:15:33.000000000 +0900
@@ -5498,6 +5498,9 @@
system_charset_info= &my_charset_utf8_general_ci;
files_charset_info= &my_charset_utf8_general_ci;
national_charset_info= &my_charset_utf8_general_ci;
+ system_charset_info= &my_charset_bin;
+ files_charset_info= &my_charset_bin;
+ national_charset_info= &my_charset_bin;
table_alias_charset= &my_charset_bin;
opt_date_time_formats[0]= opt_date_time_formats[1]= opt_date_time_formats[2]= 0;
diff -u mysql-4.1.8pre/sql/set_var.cc.orig mysql-4.1.8pre/sql/set_var.cc
--- mysql-4.1.8pre/sql/set_var.cc.orig 2004-11-28 07:40:59.000000000 +0900
+++ mysql-4.1.8pre/sql/set_var.cc 2004-11-28 07:19:17.000000000 +0900
@@ -136,7 +136,8 @@
sys_check_charset,
sys_update_charset,
sys_set_default_charset,
- (char *)my_charset_utf8_general_ci.name);
+ (char *)my_charset_bin.name);
+// (char *)my_charset_utf8_general_ci.name);
sys_var_character_set_database sys_character_set_database("character_set_database");
sys_var_character_set_client sys_character_set_client("character_set_client");
sys_var_character_set_connection sys_character_set_connection("character_set_connection");