- MySQL
- 2015-12-15
今回はまたまたとある環境で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の設定がおかしいことが多いようです。