MySQL5.xのインストール
いつもインストールのやり方を忘れてしまうので、メモしておきます。ここではコンパイル済みバイナリを使用し、CentOS5 にインストールしています。
インテルのCPUで実行する場合は、gccよりもインテルCコンパイラでコンパイルされたバイナリ *1 の方が速い、といわれてますので、それを使用します。
4.1まではバイナリを展開するだけだったのですが、5.xからは "scripts/mysql_install_db --user=mysql" を実行するようになったようです。# groupadd mysql # useradd -g mysql mysql # cd /usr/local # tar zxvf /path/to/mysql-VERSION-OS.tar.gz # ln -s full-path-to-mysql-VERSION-OS mysql # cd mysql # chown -R mysql . # chgrp -R mysql . # scripts/mysql_install_db --user=mysql # chown -R root . # chown -R mysql data # cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld # chkconfig --add mysqld # chkconfig mysqld on
参考URL: http://dev.mysql.com/doc/refman/5.0/en/installing-binary.html
my.cnf の設定
my.cnfを作成し、default-character-set を設定します。my.cnf は同梱のものを利用し、必要に応じて変更します。ここではアプリケーションのインストールテスト *2 という小規模な用途でしたので、my-small.cnf を使用しました。
# cp /usr/local/mysql/support-files/my-small.cnf /etc/my.cnf # vi /etc/my.cnf ----------------------------------- [mysqld] default-character-set=utf8 ←追加 ----------------------------------- # /etc/init.d/mysqld restart # $ su - mysql $ mysql -uroot --default-character-set utf8 -p mysql> SHOW VARIABLES LIKE 'character\_set\_%'; +--------------------------+--------+ | 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 | +--------------------------+--------+ 7 rows in set (0.00 sec) mysql>
キャラクタセットの指定
ターミナルから mysql コマンドで接続して sql を実行すると、日本語が文字化けします *3。これは、mysql のキャラクタセットが指定されてないからです。デフォルトでは、以下のような感じです。
mysql> SHOW VARIABLES LIKE 'character\_set\_%'; +--------------------------+--------+ | Variable_name | Value | +--------------------------+--------+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | utf8 | | character_set_results | latin1 | | character_set_server | latin1 | | character_set_system | utf8 | +--------------------------+--------+ 6 rows in set (0.01 sec) mysql> select entry_id, entry_class, entry_text from mt_entry where entry_class = 'page'; +----------+-------------+--------------------+ | entry_id | entry_class | entry_text | +----------+-------------+--------------------+ | 4 | page | ????????????????? | +----------+-------------+--------------------+ 1 row in set (0.01 sec) mysql>
キャラクタセットを指定すると、OK。
mysql> SET CHARACTER SET utf8; Query OK, 0 rows affected (0.01 sec) mysql> SHOW VARIABLES LIKE 'character\_set\_%'; +--------------------------+--------+ | Variable_name | Value | +--------------------------+--------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_results | utf8 | | character_set_server | latin1 | | character_set_system | utf8 | +--------------------------+--------+ 6 rows in set (0.00 sec) mysql> select entry_id, entry_class, entry_text from mt_entry where entry_class = 'page'; +----------+-------------+------------------------------------------------------+ | entry_id | entry_class | entry_text | +----------+-------------+------------------------------------------------------+ | 4 | page | 地震だ。でかいぞ。もうだめだ。>< | +----------+-------------+------------------------------------------------------+ 1 row in set (0.00 sec) mysql>
また、起動時に指定することもできます。
$ mysql -uroot --default-character-set utf8
マニュアルだと、このあたりです。
http://dev.mysql.com/doc/refman/5.1/ja/charset-connection.html
*1 ファイル名に -icc- が入っているやつです。たとえば mysql-5.0.51a-linux-i686-icc-glibc23.tar.gz とか。
*2 下の例でおわかりのように、MovableType のインストールテストです。
*3 LANGやターミナルのエンコーディングを合わせているのは前提とします。
0 件のコメント:
コメントを投稿