アットウィキロゴ

AccessとMysql の設定でとても困ったこと・・・。

解決済みの問題等を覚え書き

my.ini と my.cnf の設定

[WinMySQLAdmin]
Server=c:/xampp/mysql/bin/mysqld-nt.exe
datadir = c:/xampp/mysql/bin

[mysqld]
default-character-set=sjis

[mysql]
default-character-set=sjis

[mysql-dump]
default-character-set=sjis

########################################


[client]
port            = 3306
socket          = "C:/xampp/mysql/mysql.sock"

[mysqld]
port= 3306
socket= "C:/xampp/mysql/mysql.sock"
basedir="C:/xampp/mysql"
tmpdir="C:/xampp/tmp"
datadir="C:/xampp/mysql/data"
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M

skip-character-set-client-handshake
character-set-server = sjis
collation-server = sjis_japanese_ci

server-id    = 1

innodb_data_home_dir = "C:/xampp/mysql/"
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = "C:/xampp/mysql/"
innodb_log_arch_dir = "C:/xampp/mysql/"
innodb_buffer_pool_size = 16M
innodb_additional_mem_pool_size = 2M
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50

[mysqldump]
quick
max_allowed_packet = 16M
default-character-set = SJIS
skip-opt
create-options
set-charset
hex-blob
single-transaction
master-data


[mysql]
default-character-set = SJIS
no-auto-rehash

[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout


という形にしたところ dos窓から操作した variables like ('char%');

で調べても


C:\xampp\mysql\bin>mysql -u root -p
Enter password: ********
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 81
Server version: 5.0.51b-community-nt MySQL Community Edition (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>show variables like 'char%';
+--------------------------+-------------------------------------+
| Variable_name            | Value                               |
+--------------------------+-------------------------------------+
| character_set_client     | sjis                                |
| character_set_connection | sjis                                |
| character_set_database   | sjis                                |
| character_set_filesystem | binary                              |
| character_set_results    | sjis                                |
| character_set_server     | sjis                                |
| character_set_system     | utf8                                |  システムの utf8 は固定みたいです。
| character_sets_dir       | C:\xampp\mysql\share\charsets\ |
+--------------------------+-------------------------------------+
8 rows in set (0.08 sec)

mysql> exit;
Bye

C:\xampp\mysql\bin>

とこうなった。

 

 

 my.ini と my.cnf の読込順

後から読み込まれた設定が、前の設定を上書きします。

  • Unix系列の場合
    • /etc/my.cnf → データディレクトリ/my.cnf → --defaults-extra-file=で指定されたファイル → ~/.my.cnf
    • 「データディレクトリ/my.cnf」 は、コンパイル時に指定されたデータディレクトリ固定です。
  • MS-Windows 系列の場合
    • %WINDIR%\my.ini → C:\my.cnf → --defaults-extra-file=で指定されたファイル
    • my.ini , my.cnf が同時に存在する時は、両方読まれる。my.ini が先に読まれる(今は)

特別に:

  • 全ての OS において
    • --defaults-file= で設定ファイルが指定された場合、指定されたファイルだけが読まれる。

      とあります。どういう順番で読み込まれるのかはよくわからないのですが、c:\windows ディレクトリにmy.ini と my.cnf を同時にコピーすると読み込んだ。

      この設定で、めでたく sjis でデータベースを構築することができたみたい。設定だけきちんとやって PHP できちんと表示されるかどうかをテストしたい。

タグ:

+ タグ編集
  • タグ:
最終更新:2008年08月31日 16:46