Gentoo Logo

MySQl 4.1.xへのアップグレードガイド

目次:

1.  以前のMySQLバージョンからのアップグレード

4.0.24以前のバージョンからアップグレードするユーザーは、まずMySQL 4.0.25をインストールしてください。 もし、すでに4.0.25を稼動させている場合は、このセクションをスキップし、次のセクションに進んでください。

コード表示 1.1: 単純アップグレード

# emerge -av --buildpkg "<mysql-4.1"

2.  現行データのバックアップ

どのデータベース管理者にとっても、もっとも重要な作業の一つにデータのバックアップがあります。 では、やってみましょう。

コード表示 2.1: すべてのデータベースをダンプする

# mysqldump \
  -uroot \
  --password='あなたのパスワード' \
  -hlocalhost \
  --all-databases \
  --opt \
  --allow-keywords \
  --flush-logs \
  --hex-blob \
  --master-data \
  --max_allowed_packet=16M \
  --quote-names \
  --result-file=BACKUP_MYSQL_4.0.SQL

コマンドを実行するとBACKUP_MYSQL_4.0.SQLというファイルが存在しているはずで、 これが後でデータを復元するのに使われます。このデータはSQL(the Standard Query Language)の MySQL方言で書かれています。

また、取得したバックアップが稼動するかどうか見ておいたほうがよいでしょう。

3.  最新のバージョンからのアップグレード

もし、ステップ#1をスキップしたならば、現在インストールされているバージョンのバックアップパッケージ (データではなく、データベースサーバーのもの)を作成します。

コード表示 3.1: バイナリーパッケージバックアップ

# quickpkg dev-db/mysql

今度は現在のバージョンと全てのデータをきれいに削除します。

コード表示 3.2: MySQLのアンインストール

# /etc/init.d/mysql stop
# emerge -C mysql
# tar cjpvf ~/mysql.$(date +%F_%H-%M).tar.bz2 /etc/mysql/my.cnf /var/lib/mysql/
# ls -l ~/mysql.*
# rm -rf /var/lib/mysql/ /var/log/mysql

注意: ここでは二つの異なるバックアップがなければなりません。 一つはSQLのバックアップでMySQLの各バージョン間で互換性があるものと、 もう一つはデータベースを素早く戻すためのものです。 これについてはこのドキュメントの後半でより詳しく触れます。

古いMySQLを削除した後に新しいバージョンをインストールできます。 MySQLに対してリンクしているパッケージのリビルドのためrevdep-rebuildが必要です。

コード表示 3.3: バイナリーのアップデート

# emerge -av ">mysql-4.1"
# dispatch-conf
# revdep-rebuild

インストールした新バージョンのMySQLを設定し、デーモンをリスタートさせましょう。

コード表示 3.4: MySQL 4.1ベースの設定

# emerge --config =mysql-4.1.<micro_version>
# /etc/init.d/mysql start

最後にステップ2で作成したバックアップをインポートすることができます。

重要: 標準の/etc/mysql/my.cnfファイルでは、標準でバイナリでのログ出力(log-bin)が設定されています。これは、データを更新する単一トランザクション毎に記録します。もしとても大きなデータベース(たとえば1GB)を扱った場合、これはとても早くディスクスペースを消費する、きわめて大きなファイルを作成することになります。ディスクスペースがあまりないのでしたら、バイナリでのログ出力を無効にした方がよいでしょう。

コード表示 3.5: SQLバックアップをインポートする

# cat BACKUP_MYSQL_4.0.SQL \
     | mysql \
     -uroot \
     --password='あなたのパスワード' \
     -hlocalhost \
     --max_allowed_packet=16M

# mysql_fix_privilege_tables \
     --defaults-file=/etc/mysql/my.cnf \
     --user=root \
     --password='あなたのパスワード'

MySQLをリスタートし、期待どおり万事うまくいって、4.1.x バージョンでの稼動が可能です。

コード表示 3.6: MySQL インスタンスのリスタート

# /etc/init.d/mysql restart

アップグレード手順のなかで何か問題が生じた場合、 GentooのBugzillaに問題を報告してください。

4.  古いMySQL 4.0に戻すには

MySQL 4.1 に何か不満があれば、MySQL 4.0 に戻すことが可能です。

コード表示 4.1: 以前の状態に戻す

# /etc/init.d/mysql stop
# emerge -C mysql
# rm -rf /var/lib/mysql/ /var/log/mysql
# emerge --usepkgonly "<mysql-4.1"
# tar -xjpvf mysql.[tag] -C /
# /etc/init.d/mysql start

5.  直接アップグレードの方法、ただしサポートされおらず危険

ある条件によっては次メジャーバージョンにそのままアップグレードすることができます。 以下で何をしているのか理解し、あなたのシステムに適するか考えた上であれば、 ちょっとした要領で、MySQL 4.1 に直接アップグレードできます。

コード表示 5.1: 直接アップグレード

# quickpkg dev-db/mysql
# /etc/init.d/mysql stop
# tar -cjpvf ~/mysql.$(date +%F_%H-%M).tar.bz2 /etc/mysql/my.cnf /var/lib/mysql/
# ls -l ~/mysql.*
# export MYSQL_STRAIGHT_UPGRADE=1
# emerge -av ">mysql-4.1"
# unset MYSQL_STRAIGHT_UPGRADE
# dispatch-conf
# revdep-rebuild
# /etc/init.d/mysql start
# mysql_fix_privilege_tables --defaults-file=/etc/mysql/my.cnf \
     -uroot --password='あなたのパスワード'
# mysql --database=mysql -uroot --password='あなたのパスワード' < /tmp/new_pieces.sql
# /etc/init.d/mysql restart # just to be sure

グッドラック!何かあっても、私たちが何も注意してない、なんていわないでね;-)



印刷

ページの更新日 2006年 3月 11日

この翻訳はすでにメンテナンスされていません。

要約: MySQLチームはMySQL 4.1がGentooのUnstableツリー(~arch)に取り込まれたことお知らせでき、 光栄に思っています。チームの目標としては、早くこのebuildを安定化したいと考えており、 この文書は希望するテスターの皆さんに向けたアップグレード手順です。

Michael Kohl
Author

Francesco Riosa
Author

シンドウ
翻訳

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.