今現在は管理者とサーバは賃貸マンションにいるのですが、適度なタイミングで実家に引っ越そうと考えています。 実家にはインターネット回線といえば、ダイアルアップのモデムしかないので、 引っ越す際には光なりCATVなりのそれなりの回線を準備する必要があります。
それに伴い、この自宅サーバ雑記帳も引く回線によっては1、2ヶ月の間自前のサーバで運用出来ないことも考えられます。そこで、 いつでも自宅の環境をXREAのサーバに移行できる準備を事前に行っています。
このエントリではバージョンの大きく異なるMySQLのデータを移行させるためのTIPSを説明しています。
hijiki.netはValueDomainで取得していますが、 ここで取得するともれなくXREAのレンタルサーバが1ドメインにつき1アカウント無条件に取得出来ます。
追加料金を払うとページの上下に強制的に表示されるバナー広告の免除もできるほか、各種CGIも比較的緩い制限で利用できます。 XOOPSやPukiWiki、MovableType等に必要なモジュールも標準で用意されている他、DBもPostgreSQLか、 MySQLを利用できます。
基本的には以下の手順で移行できます
実際の所前述作業の中で、MySQLのexportでちょっと詰まりました。家の環境ではMySQLは4.1系を使っているのですが、 XREAでは4.0系を利用しており、 普通にmysqldumpをパラメータなしで実行しただけでは互換性がなく正常にXREA側でimportできません。 ビックリしたのはman mysqldump見ても書かれていなかったのですが、mysqldump --helpを見て解決しました。
それは--compatibleオプションで、mysqldump --compatible=mysql40… とすると出力されるSQLファイルを4.0系のものに変換して出力してくれるのです。 驚いたのがoracleやPostgreSQLへ変換するパラメータも有ることです。これは便利だ。
また、 MySQLはFreeBSDのPortsから何も手を加えずにインストールしているのでデフォルトの文字コードはlatin1になっている事です。 通常では別にlatin1でも好きな文字コードのレコードを格納しても、その文字カラムでのソートを行わない限り全く問題ないのですが、 mysqldumpがexport時に勝手にlatin1→EUCへの文字コード変換を行おうとするのか、 日本語部分が化け化けになって出力されてしまいます。
それを回避するのが--default-character-set=latin1です。 これを入れればexport時に文字コード変換を行わないで出力されます。
よって、mysqldumpを実行する時には以下の書式で行います。
mysqldump --compatible=mysql40 --default-character-set=latin1 -uユーザ名 DB名 -pパスワード > 出力ファイル名
これで、exportしたファイルはDB上に格納されている文字コードと同一のものが取得できます。 うちの場合はEUC-JPコードで取れました。
今までずっとPostgreSQLを使っていて、pg_dumpでは特に文字コードを意識したことはなかったのですが、 今回MySQLにして調べ始めたときには唖然としてしまいました。
半分意地で調べた結果、意外とMySQLは多環境に優しい優れたDBだと言うことが分かりました。 最近のVersionではSQLの副問い合わせにも対応したみたいで、もしかしてPostgreSQLよりも凄いのではと思い始めています。
とりあえず今回の調査で、いつでも自宅サーバをXREAにデータ移行できる事がわかりました。 DNSの変更をすれば利用している方々にはサーバが変わったことなど全く気づかないでスムーズに行けそうです。
さあ、引っ越し費用を稼がないと(笑)
投稿者 yotan : 2005年1月 3日 15:42| トラックバック(0)※コメント内にURLを書くとSPAM扱いとなります。2ch風に表記はOKです


