2012年7月13日

[mysql 15810] Re: PHPとutf8mb4

藤田です。

php53のRPMではなく、PHP5.3.14をソースからコンパイルしてみました。
そのとき、「--with-mysqli=/usr/bin/mysql_config」としてMySQL5.5.24 RPM版のmysql_configを
指すようにしてコンパイルしました。

コンパイルしてできたlibphp5.soに対して、以下のコマンドで確認したところ、
正常にMySQL5.5用のクライアントライブラリlibmysqlclient.so.18へリンクしておりました。


$ ldd /usr/lib/httpd/modules/libphp5.so
...
libmysqlclient.so.18 => /usr/lib/libmysqlclient.so.18 (0x00f3d000)
...


この状態で、MySQLサーバには「skip-character-set-client-handshake」を指定せずに起動して、
PHPからは$mysqli->options(MYSQLI_READ_DEFAULT_FILE, '/etc/my.cnf');で
[client]の「default-character-set = utf8mb4」を読み込むようにしてCGIを実行したところ、
全て正常に動作しました。(4バイトUTF-8についてのinsert、select共)
やはりこのやり方が一番正しいんですね。

今後コンパイルしたPHPでいくか、php53 RPM版を強引に「skip-character-set-client-handshake」で
使うか検討させて頂きます。
もろもろありがとうございました。


何とぞよろしくお願いいたします。

投稿者 xml-rpc : 2012年7月13日 18:04
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/111265
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。