LoginSignup
0
0

More than 5 years have passed since last update.

mysql(5.0.95->5.5.46) + mod_auth_mysql の更新(CentOS 5.11)

Last updated at Posted at 2015-10-09

ローカルでredmine(1.3.0.devel.8694)を利用している。かなり古くなったので近々、バージョンアップしたい。いきなり、現物をいじるのは気が引けるので、virtualbox環境下のCentOS上で確認した関連更新手順を個人的な備忘録としてまとめた。今回はmysql部分。

大きな流れ

ざっと、以下の様なながれ。
mod_auth_mysqlに関しては、svn(+apache2)向けのBASIC認証でredmineのアカウントとパスワードを利用しているので、要更新。

  1. バックアップ
  2. 旧mysql(5.0.95)のアンインストール
  3. 新mysql(5.5.46)のインストール
  4. リストア
  5. mod_auth_mysql のビルド&インストール

バックアップ

$ mysqldump -u root -p -h localhost --all-databases > backup_all.sql
$ cp -p /etc/my.cnf my.cnf # 現状、デフォルトで利用しているので、不要。

旧mysql(5.0.95)のアンインストール

mysqlは、yum経由でインストールしていたので、以下で消せる。

$ sudo /etc/init.d/mysqld stop       # DB停止
$ sudo yum erase mysql mysql-server  # 削除。依存する奴も合わせて。

# 今回削除消したやつ
==========================================================================================
 Package                    Arch       Version                      Repository       Size
==========================================================================================
Removing:
 mysql                      i386       5.0.95-5.el5_9               installed       8.0 M
 mysql-server               i386       5.0.95-5.el5_9               installed        22 M
Removing for dependencies:
 MySQL-python               i386       1.2.3-0.1.c1.el5             installed       306 k
 libdbi-dbd-mysql           i386       0.8.1a-1.2.2                 installed        37 k
 mod_auth_mysql             i386       1:3.0.0-3.2.sha1.salt        installed        43 k
 mysql-connector-odbc       i386       3.51.26r1127-2.el5           installed       423 k
 mysql-devel                i386       5.0.95-5.el5_9               installed       5.6 M
 perl-DBD-MySQL             i386       3.0007-2.el5                 installed       326 k

新mysql(5.5.46)のインストール

5.5系のrpmが、remiリポジトリにある模様。

$ sudo rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
$ sudo yum --enablerepo=remi install mysql mysql-server mysql-devel
$ sudo /etc/init.d/mysqld start
$ sudo /sbin/chkconfig mysqld on  # 立ち上げ時に自動で起動するように

リストア

出鼻で取得したバックアップ:backup_all.sqlを、そのままリストア。
my.confは、デフォルトで利用している分には、変更が無かったのでそのまま。

$ mysql -u root -p < backup_all.sql

本来はこちらの手順にあるmysql_upgradeでいけるはずらしいのだが、以下の様なエラーが出たりしたので、断念。。一応に、ダメ元で--skip-version-checkを試してみたら、わけのわからないエラーとなった。。

$ mysql_upgrade -u root -p -h localhost
Enter password:
Looking for 'mysql' as: mysql
Looking for 'mysqlcheck' as: mysqlcheck
Error: Server version (5.0.95) does not match with the version of
the server (5.5.46) with which this program was built/distributed. You can
use --skip-version-check to skip this check.
FATAL ERROR: Upgrade failed
  :

アカウント情報が消えていた場合

本番では、アカウント情報が消えており、mysql -u root -pで、ログインできなかった。
#仮想環境と、環境設定に若干ずれがあった模様。。(焦った。。)

そこで、一旦、パスワード無でリストア。

$ mysql -u root < backup_all.sql

その後、
http://qiita.com/daichi87gi/items/f9dac6cd8acc3ad4330d
を参考にして、rootとredmine用のアカウントを追加。

rootパスワード追加
$ mysql -u root

mysql> USE mysql;
mysql> UPDATE user SET password=PASSWORD('password_YYYYYY')  WHERE host='localhost' AND user='root';
mysql> FLUSH PRIVILEGES;
redminユーザアカウント追加
$ mysql -u root -p

mysql> CREATE USER 'redmineuser'@'localhost' IDENTIFIED BY 'password_XXXXXX';
mysql> GRANT ALL PRIVILEGES ON redmine.* TO 'redmineuser'@'localhost';
mysql> FLUSH PRIVILEGES;

mod_auth_mysql のビルド&インストール

バージョンアップで、mysqlのライブラリが変わったので、mod_auth_mysqlも、更新する必要がある。
mod_auth_mysqlは、かなり前から更新が滞っている為、SRPMを借用し、若干パッチを充てる必要がある。
手順は以下の通り。

  1. rpmbuildを一般ユーザで行う設定をする(飛ばしてもよい)
  2. SRPMの取得、インストール
  3. パッチに取得&SPECファイル編集
  4. ビルド&インストール
  5. redmine.confの編集
  6. apatch2の再起動&確認

rpmbuildを一般ユーザで行う設定をする

こちらで、丸々お世話になる。
既に設定済みの場合や、suして実施する場合などは飛ばす。

パッチに取得&SPECファイル編集

基本、こちらこちらを参考にさせていただいた。

$ cd SRPMS
$ wget ftp://ftp.icm.edu.pl/vol/rzm5/linux-fedora-secondary/updates/15/SRPMS/mod_auth_mysql-3.0.0-18.fc15.src.rpm
$ rpm -ivh --nomd5 mod_auth_mysql-3.0.0-18.fc15.src.rpm
$ cd ../SOURCES
$ wget http://www.redmine.org/attachments/download/6443/mod_auth_mysql-3.0.0-redmine.patch # パッチ取得
$ cd ../SPECS
$ vi mod_auth_mysql.spec # 以下、specファイルの編集参照
specファイルの編集(diffのとり方が逆)
--- mod_auth_mysql.spec 2015-10-09 12:00:28.000000000 +0900
+++ mod_auth_mysql.spec.org     2015-10-09 11:59:36.000000000 +0900
@@ -1,7 +1,7 @@
 Summary: Basic authentication for the Apache web server using a MySQL database
 Name: mod_auth_mysql
 Version: 3.0.0
-Release: 18.1%{?dist}
+Release: 18%{?dist}
 Epoch: 1
 Group: System Environment/Daemons
 URL: http://modauthmysql.sourceforge.net/
@@ -11,7 +11,6 @@
 Patch1: mod_auth_mysql-3.0.0-disable.patch
 Patch10: mod_auth_mysql-3.0.0-CVE-2008-2384.patch
 Patch11: mod_auth_mysql_make_scrambled_password.patch
-Patch20: mod_auth_mysql-3.0.0-redmine.patch
 License: ASL 1.1
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 BuildRequires: httpd-devel, mysql-devel
@@ -29,8 +28,6 @@
 %patch10 -p1 -b .cve2384
 %patch11 -p1 -b .scrambled

-%patch20 -p1 -b .redmine
-
 %build

ビルド&インストール

編集したSPECファイルを指定してrpmbuildし、インストール。

$ rpmbuild -bb mod_auth_mysql.spec
$ cd ../RPMS/i386
$ sudo rpm -ivh mod_auth_mysql-3.0.0-18.1.local.i386.rpm

redmine.confの編集

このままだとBASIC認証が通らないのでredmin.confの以下を編集する。

AuthMySQLPwEncryption sha1
                       ↓
AuthMySQLPwEncryption sha1-rm

httpdの再起動&確認

以下で、httpdを再起動し、svnクライアントからredmineに登録しているアカウント+パスワードでコミット出来たら成功。

$ sudo /etc/init.d/httpd restart
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0