今回はsetupスクリプトを使用して設定してみます。ダウンロードしたファイルの中の解説http://localhost/phpMyAdmin/Documentation.html#setup_scriptを参考にします。phpMyAdminの中にconfigという名前のディレクトリを作り、apacheに書込み許可を与えておきます。次にconfig.sample.inc.phpをconfigの中にコピーし、名前をconfig.inc.phpに変えてこれもapacheに書込み権限を与えておきます。ブラウザから次のアドレスを開きます。表示が出ますが、SSL接続をしていないときの警告で気にする必要はありません。開き、次の項目を設定。[Save]次にconfig/config.inc.phpを上のphpMyAdminディレクトリにコピーし、apacheのみに読み出し権限を与えます。configディレクトリは設定がすべて完了したら消去してかまいません。"password"を入力。このphpMyAdmin2.10はけっこう遅いです。バージョン2.6の頃から使っていますが、バージョンが上がるたびに遅くなってきている気がします。機能が追加されてきてるからしょうがないのかな。今日は台風のため通勤不能となり会社を休んでしまった。phpMyAdminの次のバージョンが出たのでさっそくアップグレード。バージョンは2.11.0、やり方は前と同じ。使ってみると2.10.0.2よりはだいぶ速くなった感じがしました。(でも遅い)表示等が一部昔に戻っています。凝った表示であまりに遅くなって不評が出たのでしょうか。データの移行サーバーの/var/lib/mysqlにあるデータベースのディレクトリと同じ名前のディレクトリ(但しmysqlを必ず除いて)を/var/lib/mysqlにつくり、所有者をmysqlに変更。ホームページのバックアップ用に作ったコピースクリプトにmysql以外(正確には/var/lib/mysql/mysql以外)の各データベースのコピースクリプトを加えてコピー。再度phpMyAdminで見るとちゃんとデータが見れました。(utf8)などと表示されています。mysqlデータベースを開き、userテーブルにユーザ名、パスワード、権限などを登録。このとき名無しユーザーやパスワードなしのユーザが仮登録されているのでそれは削除。dbテーブルにデータベース名、ユーザ名、権限を登録。このmysqlデータベースだけは後述しますが前のバージョンのデータをコピーしてはいけません。restartこれでapache-phpを通してデータの読み書きができるはずです。文字化けさっそく繋いでみます。同じLAN内の別のコンピュータ(Windows)からhttp://192.168.1.3(新しいサーバーのIPアドレス)/いちおうページのレイアウトは表示されますが、日本語は見事に文字化けして"???????"になってしまっています。(やっぱり!)MySQLのオフィシャルサイトを見てもよくわかりませんでしたのでGoogleで検索したら以下のサイトが見つかりました。http://iandeth.dyndns.org/mt/ian/archives/000108.htmlさらにここからのリンクでhttp://www.mysql.gr.jp/frame/modules/bwiki/index.php?FAQ世の中にはずいぶん研究している方がいらっしゃるもので、もうほとんどそのまま。set不一致のwarningが書き込まれてしまいます。結局最終的にはエクスポート/インポートでデータを移し言語コードの不一致を解消するしかないようです。サーバー切り替えの最後のバックアップのときにやることにします。Ver4.0と5.0のちがいいろいろ失敗した中で少しわかりました。MySQL自身が使用するデータベース/var/lib/mysql/mysqlはVer4.0とVer5.0で互換性がありません。重要なuserテーブルの項目を見ますとすでに項目がいくつか追加されています。新しいテーブルも増えています。このmysqlテーブルの(特にuserテーブルの)古いデータがあったことが今回MySQLの起動に失敗していた理由のようです。従ってmysqlデータベースに関してはファイルコピーによる移行やバックアップ等は行えず、ユーザ名、パスワード、権限などをphpMyAdminから再度打ち込んで作成することにしました。(たいした件数もありませんでしたので。)その他の自分で項目を設定したデータベースに関してはファイルコピーでOKのようです。サーバーのディフォルト言語も変わっているようで、サーバーシステムの言語がEUC-JPの場合はその設定も必要ということのようでした。これらで一週間もかかってしまった...。さらなる問題が...実際にホームページを表示、編集してみておかしな現象に気づきました。データが欠落しているふしがあるのです。調べてみるとデータを保持するバイト数に互換がないことが判明。データ型char,varcharで従来の1/3位のバイト数しか保持されません。1)データ保持数をバイト数から文字数に変更2)それに伴いマルチバイト文字は3バイト程度ということで保持数を1/3に勝手に変換3)ところがこれを半角文(1バイト文字)にも適用ということで、半角英数字の保持数も約1/3になっていたのでした。ほとんど「どじ!」としか言いようのない変更です。これもhttp://www.mysql.gr.jp/frame/modules/bwiki/index.php?cmd=read&page=FAQにはすでに書かれていたのですが見落としていました。結局データ型変換プログラムを作って各サイトで走らせて解決。データの場所変更MySQLのデータは/var/lib/mysqlにありますが、次の理由から/homeディレクトリに格納しておきたくおもいます。ユーザデータをまとめておいた方がバックアップや確認が楽。最悪OSの再インストールなどが必要になった場合、システムと関係ないパーテーションに保存してあればそっくり生かせる。ためしに/homeにmysqlというディレクトリをつくり(もちろんmysql所有で)、これを/var/libにリンクしてみたらちゃんと動作します。データを全部/home/mysqlに移し、今後はこれで動作させることにしました。MySQLの設定は特になにも変更してはいません。