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 件のコメント:
コメントを投稿