前回、mysqlのインストールを行いました。
今回は、先のインストール手順の続編で、アップデート手順です。
他のサーバー(サービス)のバージョンアップの影響や、あまりに古くなりすぎてメンテナンス上、mysqlのバージョンのアップデートが必要になることがあります。
そのとき、案外、困るのがその手順がよくわからないことです。
やり方は、意外と簡単だったので、メモとして以下に残しておきます。
ここでは、mysql5.0系をアンインストールして、5.1系へアップデートしてみます。
旧mysqlをアンインストールする
まずは、現在のデータベースをすべてバックアップしておきます。(もし、データベースが壊れた場合のためです。)
そのあとで、アンインストールを実施します。
- mysqlサーバーを停止する
$ /usr/local/etc/rc.d/mysql-server stop
|
- データベースのバックアップを実施する
$ cp -r /home/mysql /hoem/mysql-backup
|
mysqlのホームディレクトリを丸ごとコピーしておきます。
もしも、容量が不足している場合などは、別のディレクトリ、別のホスト、圧縮して保存するなどしましょう。
- 旧mysqlをアンインストールする
$ cd /usr/ports/databases/mysql50-client
$ make deinstall
...
|
ここでは、mysql5.0系クライアントを、まずアンインストールしています。
$ cd /usr/ports/databases/mysql50-server
$ make deinstall
...
|
ここでは、mysql5.0系サーバーを、まずアンインストールしています。
新mysqlをアンインストールする
- 新mysqlをインストールする
$ cd /usr/ports/databases/mysql51-client
$ make WITH_CHARSET=utf8 WITH_XCHARSET=all install clean
...
|
ここでは、mysql5.1系クライアントを、まずインストールしています。
$ cd /usr/ports/databases/mysql51-server
$ make WITH_CHARSET=utf8 WITH_XCHARSET=all install clean
...
|
ここでは、mysql5.1系サーバーを、インストールしています。
- mysqlサーバーを起動する
$ /usr/local/etc/rc.d/mysql-server start
|
- データベースをアップデートする
$ mysqlcheck --check-upgrade --all-databases --auto-repair --user=root --password
Enter password:
...
BBBB OK
CCCC OK
AAAA
error : Table upgrade required. Please do "REPAIR TABLE `AAAA`" or dump/reload to fix it!
Repairing tables
AAAA OK
...
|
先のコマンドmysqlcheckでデータベース内のすべてのデータのアップデートを自動的に実施します。
もし、UPDATEの処理が必要なテーブルがみつかったら、上記のように
error : Table upgrade required. ……
と表記されます。
すべてのチェックを終えたら、自動的にアップデート作業が必要なものについては、アップデート作業を行います。
最終的(処理結果は、Repairing tables以降に出力されます)には、すべてOKとなるはずです。
もし、このアップデートで失敗するようであれば、そのエラーを確認しましょう。
最悪の場合でも、最初にバックアップをとっているはずですから、安心ですね。
バックアップは、sql形式の
mysqldump を使っても良いと思います。
mysqldump を使ったバックアップ、リストアは、
mysqlのバックアップとリストアを参照してください。
mysqlのバックアップやリストアは、
格安レンタルサーバーでも必要ですから、ここで理解を深めておきましょう。
格安レンタルサーバーを移る時などは、mysqlのバージョンが異なることもあります。その場合は、上記の手順が、役に立つこともあるかもしれませんね。
ご利用のブラウザは、広告ブロック(AdBlockなど) が適用となっていませんか?
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない、検索ができないことがあります。
関連記事 :
コメントを投稿 :