PHP5-MYSQLの設定

投稿者: | 2010年8月17日
Pocket

対象サーバについて

製品名 OpenBlockS 600
OS(kernel ver) Debian lenny(2.6.29)
CPU 600MHz(AMCC PowerPC 405EX)
メモリ 1GB(DDR2 SDRAM)
ストレージ 8GB(Compact Flash)

php5-mysqlのインストール

www:~# aptitude install php5-mysql

php5-mysqlの設定

www:~# vi /etc/php5/apache2/php.ini
mysql.default_port = 3306
mysql.default_host = localhost
mysql.default_user = dbadmin
mysql.default_password = abcdefgh

上記箇所のみを修正します。

PHPからMysqlに接続する際の条件として、3306番ポート、デフォルトホストはlocalhost、ユーザとパスワードはMysql5の設定で作成したユーザです。

次に文字化け対策です。PHPからMySQLに接続する際にはかなりの確率で文字化けが発生します。

本サイトでもMysql5の設定及び上記設定だけでは文字化けしました。

yossy.blogさんのサイトMyNA Web Siteさんのサイトによると、文字化け対策の中身はMySQLのバージョンにより以下の通りにパターン訳できるようです。

MySQL v4.1.15以降、MySQL v5.0.13以降

MySQL v4.1.2~4.1.14

MySQL v5.0.0~5.0.12

MySQL v4.1.0~4.1.1

MySQL v4.0系

本サーバ上のMySQLバージョン(5.0.51a-24)は上記、MySQL v4.1.15以降、MySQL v5.0.13以降に当たるため、以下の修正を施してMySQLを再起動したところ、文字化けが無くなりました(環境の異なる方は上記サイトを参照してみて下さい)

www:~# vi /etc/mysql/my.cnf
     (省略)
[mysqld]
#init-connect="SET NAMES utf8"
default-character-set = utf8
skip-character-set-client-handshake
log-bin=mysql-bin
     (省略)

このオプションを指定すると、PHPから接続したときでも自動的にクライアント側の文字コードが「default-character-set」で指定されたものに自動設定されます。

init-connect=”SET NAMES utf8″でも文字化けは解消されましたが、強制的にUTF8を使用することで他の文字コードとの混在環境などで問題になると嫌なので、コメントアウトしています。

Pocket

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です