phpMyAdminの文字化け

2006/04/06 | MySQL

自作PHPスクリプトとMySQLとのデータのやり取りで文字化けする件は、phpスクリプトのデータベース接続時に「SET NAMES」コマンドで回避できることがわかった。
自作スクリプトはこれで動いたけれど、とある環境でphpMyAdminで文字化けが発生することがわかった。不思議なことに「phpの設定」「MySQLの設定」が同じであるにもかかわらず、である。
いろいろ調べてみた。どうやらLinuxインストール時の環境にも依存するよう?だ。調べてみたところはここ。

/etc/sysconfig/i18n

このファイルで言語の設定が一行目に書いてあるのだが・・・。うまく動作しているほうはこのように記述があった。
LANG=”en_US.UTF-8″
対して動かないほうはというと・・・。

LANG=”ja_JP.eucJP”

つまり基本言語が「UTF8」か「EUC」かという違い(よくはわからないけど「Localeの違い」ってやつ?)。phpの設定としては基本的にEUCしか使用しないのでどちらも以下のように設定している。

mbstring.http_output EUC-JP
mbstring.http_input Auto
mbstring.encoding_translation Off
「モノは試し」ということでphpmyadminのあるディレクトリに以下の記述をしたhtaccessファイルを設置した。

php_value mbstring.http_output utf8

あら不思議。これでphpMyAdminからもちゃんと日本語が通るようになりました。ひょっとしたらhttp_outputの記述を変更せずにencoding_translationの値を変更することでもうまくいくかもしれない。
phpMyAdminはサーバの言語設定も見ているのかもしれない・・・。今度暇があればソースをじっくり眺めてみる必要がありそうだな。

MySQLにユーザを追加する

2006/04/03 | MySQL

別に特殊なことをするわけではないけれど、毎回「どうやるんだっけ」と正確なコマンドを忘れてしまうので備忘録として・・・。
mysqlにrootでログインし、以下のコマンドを入力(一行目で既にDBが作成されている場合は省略)

$ CREATE DATABASE [DB名];
$ GRANT ALL ON [DB名].* TO [ユーザ名]@[ホスト名] IDENTIFIED BY “[パスワード]”;
$ FLUSH PRIVILEGES;

MySQLでは「create user」という操作がなく(?)、「grant」構文がそのまま「create user」の機能も併せ持っている。
元々PostgreSQLからはいった人間にとっては、やり方が違うので少し戸惑いがあります。

MySQL4.1.xで日本語が文字化け

2006/03/08 | MySQL

MySQLは、バージョン4.1以降でサブクエリが使えるようになり、随分使い勝手がよくなった。しかし4.1以降で日本語がうまくハンドリングできなくなる。理由はこのバージョンから文字コードの自動変換機能がついたことらしい。
開発で遭遇した問題点と対応した記録をここに掲載する(CentOS4にて)。

【問題】
○CentOS4を日本語環境としてインストール
 /etc/my.cnfをネット上の情報に基づき変更するもうまくいかず。

【対応】
○CentOS4を英語環境としてインストール
 /etc/my.cnfを上記同様に設定(設定内容は以下:赤字を加筆)。
——————————————————————
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
default-character-set=ujis
init-connect=SET NAMES binary

[mysql.server]
user=mysql
basedir=/var/lib
default-character-set=ujis

[mysqld_safe]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
default-character-set=binary

[mysql]
default-character-set=binary

Read the rest of this entry »


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net