ローカルでredmine(1.3.0.devel.8694)を利用している。かなり古くなったので近々、バージョンアップしたい。いきなり、現物をいじるのは気が引けるので、virtualbox環境下のCentOS上で確認した関連更新手順を個人的な備忘録としてまとめた。今回はmysql部分。
大きな流れ
ざっと、以下の様なながれ。
mod_auth_mysql
に関しては、svn(+apache2)向けのBASIC認証でredmineのアカウントとパスワードを利用しているので、要更新。
- バックアップ
- 旧mysql(5.0.95)のアンインストール
- 新mysql(5.5.46)のインストール
- リストア
-
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用のアカウントを追加。
$ mysql -u root
mysql> USE mysql;
mysql> UPDATE user SET password=PASSWORD('password_YYYYYY') WHERE host='localhost' AND user='root';
mysql> FLUSH PRIVILEGES;
$ 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を借用し、若干パッチを充てる必要がある。
手順は以下の通り。
-
rpmbuild
を一般ユーザで行う設定をする(飛ばしてもよい) - SRPMの取得、インストール
- パッチに取得&SPECファイル編集
- ビルド&インストール
- redmine.confの編集
- 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ファイルの編集参照
--- 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