wordpressの最新バージョン2.9が、いよいよmysql4.1以上を必要とするようになったので、さくらのmysql移行を行うことにした。
前提として、さくらでmysqlをバージョンアップするには、一度データベースを削除して、さくらのコントロールパネル上で再作成する必要がある。
なので、バックアップ→DB削除→DB作成→DBインポート→アプリケーションの修正の手順をとる。
バックアップ
sshでログインし、コンソール上で下記のコマンドを打つ。
$ mysqldump-4.0 -h [dbhost] -u [dbuser] -p [dbname] > mysqldump.sql
[]の部分は各自書き換えること。
ポイントは、「mysqldump-4.0」というmysqldumpの4バージョンでコマンドを打つこと。(さくらでこれを置いているのはかなり気がきく。)4から4.1以降では文字コードの部分でだいぶ仕様が変わっているので、dumpされる内容が新バージョンとは違う。
DB削除、DB作成
データベースの削除、作成はさくらインターネットのサーバコントロールパネルから行う。
ログインして「データベースの設定」メニュー→「データベースを削除」ボタンを押す。かなりあっさりデータベースが消えてしまうので、注意しよう。
削除すると、作成の画面が表示され、mysqlのバージョンを選択して作成ができる。今回は「mysql5.1」を選択。
データインポート
データをインポートする前に、DBのステータスを確認しよう。[dbhost]は変更されているのでさくらのコントロールパネルで確認しておく。
$ mysql -v -h [dbhost] -u [dbuser] -p [dbname]
mysql> status;————–mysql Ver 14.14 Distrib 5.1.30, for portbld-freebsd7.1 (i386) using 5.2Connection id: 5105438Current database: xxxxxCurrent user: xxx@xxx.xxx.xxx.xxxSSL: Not in useCurrent pager: stdoutUsing outfile: ”Using delimiter: ;Server version: 5.1.38 FreeBSD port: mysql-server-5.1.38Protocol version: 10Connection: mysqlxxx.db.sakura.ne.jp via TCP/IPServer characterset: ujisDb characterset: ujisClient characterset: ujisConn. characterset: ujisTCP port: 3306Uptime: 68 days 21 hours 53 min 50 sec
デフォルトの状態だと各charactersetが、ujis(eucJP)で統一されているので、Dbと今回接続しているClientのcharactersetをutf8に変更して、インポートする。
mysql> alter database [dbname] character set utf8;
mysql> \C utf8
mysql> \. mysqldump.sql
1行目がDbのcharactersetを変更、2行目がこの接続している端末とのコネクションのcharacterset、そして3行目が実際にインポートしている部分。
「mysql -v」で接続している場合、インポートしている様子が端末上に流れるでしょう。
アプリケーションの変更
dbhostが変更となっているので、DBに繋いでいるアプリケーションのホスト名を変更しておく。
wordpressの場合は、「wp-config.php」というファイル。dbhost変更とともに、旧バージョンからバージョンアップしているwordpressの場合、クライアント側のcharactersetを明示的に指定していない場合があるようなので、dbhostの指定の下くらいに下記を追記しておく。
define(‘DB_CHARSET’, ‘utf8’);
同じように、symfonyやRuby on Railsのようなアプリケーションでも「database.yml」に下記設定を明示的に追記してく。
encoding: utf8
前述のとおり、さくらはデフォルト「ujis」になっていて、my.cnfの設定を変更できないため、クライアント側でutf8で接続することを必ず明記するようにしよう。
Check Tweet
Pingback: Cress's Backyard » MySQL 5.1 @さくら()
Pingback: KW · ブログ復活!()
Pingback: 思うところβ版 » Blog Archive » mysqlのバージョンアップ()
Pingback: さくらレンタルサーバーでのMySQLのアップデート | 武田 史郎(Shiro Takeda)()
Pingback: さくらインターネットのデータベースを4から5へ移行する « misty-magic.h()