MariaDB|ナレッジベース「MySQLと並行してMariaDBをインストールする」(私家版和訳)
Maria DBのナレッジベース記事「Installing MariaDB Alongside MySQL」の私家版和訳です。元記事は多分、過去10年以内にリリースされたんでは無いかな? 2020-10-08時点では、Maria DBはstable 10.5.5だし、CentOSの最新Stable版は2020-06-15時点では、8.2.2004。ということは元記事は2011-12-20リリースのCentOS 6.2ベース?…情報自体が古いわね。参考程度でお願いします。
MySQLと並行してMariaDBをインストールする
MariaDBは、MySQLの代わりにドロップインでインストールできますが、MySQLと一緒にインストールすることもできます。(例えば、データベース/アプリケーションを1つずつ移行したい場合などに便利です)。
ここでは、既存のMySQLインストールの近くにMariaDBをインストールする手順を説明します。
- ・最新版(mariadb-5.5.24-linux-x86_64.tar.gz - この記事の執筆時点)が入っているコンパイル済バイナリのtar.gzをダウンロードし、任意のディレクトリに展開してください。この記事では、ディレクトリを/optとします。
ログイン・プロンプトのシステムバナーを確認
[root@mariadb-near-mysql ~]# cat /etc/issue
CentOS release 6.2 (Final)
「mysql*」で始まる、インストール済RPMパッケージを表示
[root@mariadb-near-mysql ~]# rpm -qa mysql*
mysql-5.1.61-1.el6_2.1.x86_64
mysql-libs-5.1.61-1.el6_2.1.x86_64
mysql-server-5.1.61-1.el6_2.1.x86_64
「mysqld」でのgrep結果に関する、全ユーザーの全プロセスを階層表示
[root@mariadb-near-mysql ~]# ps axf | grep mysqld
2072 pts/0 S+ 0:00 \_ grep mysqld
1867 ? S 0:01 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock ...
1974 ? Sl 0:06 \_ /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql ...
- ・以下のように、データディレクトリmariadb-dataとシンボリックリンクmariadbを作成します。:
ディレクトリ作成
[root@mariadb-near-mysql opt]# mkdir mariadb-data
シンボリックリンク作成
[root@mariadb-near-mysql opt]# ln -s mariadb-5.5.24-linux-x86_64 mariadb
[root@mariadb-near-mysql opt]# ls -al
total 20
drwxr-xr-x. 5 root root 4096 2012-06-06 07:27 .
dr-xr-xr-x. 23 root root 4096 2012-06-06 06:38 ..
lrwxrwxrwx. 1 root root 27 2012-06-06 07:27 mariadb -> mariadb-5.5.24-linux-x86_64
drwxr-xr-x. 13 root root 4096 2012-06-06 07:07 mariadb-5.5.24-linux-x86_64
drwxr-xr-x. 2 root root 4096 2012-06-06 07:26 mariadb-data
- ・グループmariadbとユーザーmariadbを作成し、正しい所有権を設定します:
グループ「mariadb」を「システムアカウント」として新規作成
[root@mariadb-near-mysql opt]# groupadd --system mariadb
アカウント「mariadb」を、「システムアカウント」、passwdコメント「MariaDB Server」、ホームディレクトリ「/opt/mariadb」、所属グループ「mariadb」として新規作成
[root@mariadb-near-mysql opt]# useradd -c "MariaDB Server" -d /opt/mariadb -g mariadb --system mariadb
所有者「mariadb」グループ「mariadb」
[root@mariadb-near-mysql opt]# chown -R mariadb:mariadb mariadb-5.5.24-linux-x86_64/
[root@mariadb-near-mysql opt]# chown -R mariadb:mariadb mariadb-data/
- ・サポートファイルから/opt/mariadb-dataに、my.cnfを新規作成します:
ファイルのコピー
[root@mariadb-near-mysql opt]# cp mariadb/support-files/my-medium.cnf mariadb-data/my.cnf
所有者「mariadb」グループ「mariadb」
[root@mariadb-near-mysql opt]# chown mariadb:mariadb mariadb-data/my.cnf
- ・ファイル/opt/mariadb-data/my.cnfを編集し、カスタムパス、socket、port、user、そして最も重要なdatadirとbasedirを追加します。ファイルには少なくとも以下のような記述が必要です:
[client]
port = 3307
socket = /opt/mariadb-data/mariadb.sock
[mysqld]
datadir = /opt/mariadb-data
basedir = /opt/mariadb
port = 3307
socket = /opt/mariadb-data/mariadb.sock
user = mariadb
- ・サポートファイルから適切な場所に、init.dスクリプトをコピーします:
ファイルのコピー
[root@mariadb-near-mysql opt]# cp mariadb/support-files/mysql.server /etc/init.d/mariadb
属性「実行可能」を追加
[root@mariadb-near-mysql opt]# chmod +x /etc/init.d/mariadb
- ・/etc/init.d/mariadbを編集して、以下のように、mysqlをmariadbに置き換えます:
- # Provides: mysql
+ # Provides: mariadb
- basedir=
+ basedir=/opt/mariadb
- datadir=
+ datadir=/opt/mariadb-data
- lock_file_path="$lockdir/mysql"
+ lock_file_path="$lockdir/mariadb"
一番厄介なのは、このファイルへの最後の変更です。mariadbに1つのcnfファイルだけを使用するように、指示する必要があります。startセクションの、$bindir/mysqld_safeの後に、--defaults-file=/opt/mariadb-data/my.cnfを追加します。行は次のようになります:
# Give extra arguments to mysqld with the my.cnf file. This script
# may be overwritten at next upgrade.
$bindir/mysqld_safe --defaults-file=/opt/mariadb-data/my.cnf --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null 2>&1 &
wait_for_ready()関数内のmysqladminコマンドにも同じ変更を加えて、mariadb startコマンドが適切にserverの起動をlistenできるようにする必要があります。wait_for_ready()関数の、$bindir/mysqladminの後に、--defaults-file=/opt/mariadb-data/my.cnfを追加します。行は次のようになります:
wait_for_ready () {
[...]
if $bindir/mysqladmin --defaults-file=/opt/mariadb-data/my.cnf ping >/dev/null 2>&1; then
- ・my.cnfファイルを引数として明示的に指定することで、mysql_install_dbを実行します:
「/opt/mariadb」に移動
[root@mariadb-near-mysql opt]# cd mariadb
スクリプトの実行
[root@mariadb-near-mysql mariadb]# scripts/mysql_install_db --defaults-file=/opt/mariadb-data/my.cnf
- ・これで、MariaDBを起動できます
「/opt/」で起動
[root@mariadb-near-mysql opt]# /etc/init.d/mariadb start
Starting MySQL... [ OK ]
- ・システム起動時にMariaDBを起動させます:
「/etc/init.d」に移動
[root@mariadb-near-mysql opt]# cd /etc/init.d
サービス「mariadb」を、登録
[root@mariadb-near-mysql init.d]# chkconfig --add mariadb
登録したサービス「mariadb」を、Runレベル3で、自動起動させる
[root@mariadb-near-mysql init.d]# chkconfig --levels 3 mariadb on
- ・両方のインスタンスが実行されていることをテストします:
コマンドラインから(デフォルトのsocketで)実行
[root@mariadb-near-mysql ~]# mysql -e "SELECT VERSION();"
+-----------+
| VERSION() |
+-----------+
| 5.1.61 |
+-----------+
コマンドラインから(指定したmariadbのsocketで)実行
[root@mariadb-near-mysql ~]# mysql -e "SELECT VERSION();" --socket=/opt/mariadb-data/mariadb.sock
+----------------+
| VERSION() |
+----------------+
| 5.5.24-MariaDB |
+----------------+
MariaDBのアップグレードはどうするのか?
/opt/mariadb-data内にmariadb.socket、my.cnfファイル、databasesを配置することで、MariaDBバージョンをアップグレードしたい場合、以下のようにするだけで済む:
- ・現在のバージョンに近い/opt内のアーカイブから新バージョンを展開する
- ・MariaDBをstopする
- ・mariadbを変更して、新しいディレクトリを指すようにする
- ・MariaDBをstartする
- ・upgradeスクリプトを実行する…但し、ソケット・オプション--socket=/opt/mariadb-data/mariadb.sockを提供する必要があることを忘れないように
この記事が気に入ったらサポートをしてみませんか?