Categories
SugiBlog ホームページ制作・システム開発

MySQL 4から5へバージョンアップ

今回はまたまたとある環境でMySQLのバージョンアップを行いました。
4.1.20から5.0.95へのバージョンアップです。

ソースをダウンロードして解凍し、該当ディレクトリへ移動します。

コンパイルとインストール

configureを実行

./configure --with-charset=utf8 --with-extra-charset=all --with-mysqld-user=mysql
make
make install

インストールされるファイルやディレクトリ
/usr/local/lib/mysql … データディレクトリ
/usr/local/bin … mysql等の実行ファイル、その他関連コマンド
/usr/local/share/mysql … 言語ファイルや起動用のシェルスクリプト等
/usr/local/include/mysql … ヘッダーファイル


MySQLを初期化

/usr/local/bin/mysql_install_db --user=mysql \
--basedir=/usr/local \
--datadir=/usr/local/lib/mysql


データディレクトリの所有者を変更

chown -R mysql:mysql /usr/local/lib/mysql

設定ファイル「my.cnf」を環境に合わせて変更。
/usr/local/share/mysql/mysql.serverを/etc/init.d以下にmysqldとしてコピー。

MySQLを起動

/etc/init.d/mysqld start

データベースファイルのアップグレード

/usr/local/bin/mysql_upgrade --socket=/usr/local/lib/mysql/mysql.sock

パスワード設定時は「-p’xxxx’」をプラス

MySQLに接続し、rootのパスワードを設定。

/usr/local/bin/mysql --socket=/usr/local/lib/mysql/mysql.sock -u root -p
password: 空でEnter

set password = PASSWORD('xxxxx');
quit

または、

/usr/local/bin/mysqladmin -u root password 'new-password'

以下のコマンドを実行してプロセスを確認してみます。

ps aux | grep mysql

4.1.20の時は…

/bin/sh /usr/bin/mysqld_safe --defaults-file=/etc/my.cnf --pid-file=/var/run/mysqld/mysqld.pid
/usr/libexec/mysqld --defaults-file=/etc/my.cnf --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-locking \
--socket=/var/lib/mysql/mysql.sock

5.0.95だと…

/bin/sh /usr/local/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql
/usr/local/libexec/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local \
--datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid \
--skip-external-locking --socket=/usr/local/lib/mysql/mysql.sock

PHPでのmysql設定が/usr/binとなっていたので、/usr/local/binに変更し再コンパイル。
※PHP5.3.29での例

--with-mysql=/usr/local/bin

データベースのアップグレードなどを行いましたが、特に文字化けすることなくデータはそのまま移行できました。

あとがき

MySQLのインストール終了後、起動しようとすると以下のようなエラーが発生することがあります。

Starting MySQL Couldn't find MySQL Manager
(/usr/local/lib/bin/mysqlmanager) or server(/usr/local/lib/bin/mysqld_safe)

Starting MySQL Manager of pid-file quit without updating-file

こういったエラーが発生する場合、大抵はmy.cnfの設定がおかしいことが多いようです。

433 views

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*