人気ブログランキング | 話題のタグを見る
phpMyAdminを使いMySQL4.0でUTF8を無理やり使う。
現在の開発環境はEclipseを使っているので、phpやらレイアウトファイルやらhtmlなどもすべてUTF-8で作ってます。
当然自身のマシンに入れているMySQLもver4.1で文字コードをUTF8にしていました。

で、今更ながら運用するレンタルサーバのMySQLがver4.0でしかも文字コードがEUCということに気付きました。
MySQLの管理コンソールもレンタルサーバが独自に用意したもので、そこからSQL叩いてレコード増やすと当然、中の文字コードはEUCで保存されてしまい、開発中のページからデータ取得すると文字化けしてます。

cakePHPのデータベース設定(database.php)でMySQLの文字コード指定ができるとあったので、やってみました。
var $default = array(
'driver' => 'mysql',
'persistent' => false,
'host' => 'xxxx',
'login' => 'xxxx',
'password' => 'xxxx',
'database' => 'xxxx',
'encoding' => 'ujis',
);

しかし、これは内部的に SET NEMES 使ってクライアントの文字コードを伝えてるだけっぽいのですが、MySQL4.0では使えません。

ということで、仕方なしにそのままMySQLにはUTF8のままデータをぶち込むことにしました。
で、レンタルサーバオリジナルのMySQL管理コンソールは使わせずに、phpMyAdmin(表示をUTF8にして)で管理することに。

http://www.phpmyadmin.net/home_page/downloads.php
ここから最新版を取得します。
といっても、phpMyAdmin 3.0 以上は PHP 5.2以上,MySQL 5.0以上とうことでMySQL4.0系じゃ使えないので却下。
phpMyAdmin 2.11.9.3をダウンロードし解凍します。

そして、解凍後のものをFTPでレンタルサーバの公開領域にアップし、ブラウザから、phpMyAdminの入っているディレクトリにアクセスします。

「設定ファイルが作成されていないものと思われます。セットアップスクリプト を利用して設定ファイルを作成してください」
と出るので「セットアップスクリプト」のリンクを押下します。

「Servers」で「Add]ボタンを押下し、MySQLが入ってるサーバ情報を入力。

「Authentication type」は cokkie で書いてるサイトが多かったのそうします。
「User for config auth」と「phpMyAdmin control user」にMySQLのユーザ名入力。
「Password for config auth」と「phpMyAdmin control user password」にMySQLのパスワード入力。

「Add」を押下して、ページ下部の「Dwonload」ボタンで、設定ファイルをダウンロードページします。
そのファイルを phpMyAdmin 直下のディレクトリにアップロードしてから、ブラウザで(一旦落としたほうがいいかも)phpMyAdminの入ってるディレクトリ表示させると認証画面でてくるので、そこでDBのアカウントを入れると使えるようになります。

参考:phpMyAdmin 2.11.5 インストールと設定

追記(2010/08/26)
phpmyadmin 2系で「Authentication type」はcookieにしとかないと最初の認証が出てこないようです。
デフォルトのconfig にしていると、設定ファイル(config.inc.php)にmysqlのユーザ名とパスワードを書いておかないといけないようです。これはセキュリティ的にリスクあるので、cookieにして認証画面出したほうが安全ですね。

参考:
藤右衛門の親父 - phpMyAdminの設定
by jehoshaphat | 2008-11-10 18:03 | SQL


<< (php,MySQL)Inse... (cakePHP)コントローラ... >>