CentOSにMariaDB 10をインストール
現在MariaDB 5.5が稼働しているDBサーバー内で、最新バージョンの10.1.19を並行稼働させることを目標とする。
<やろうとしていること>
- 稼働中MariaDBのポート番号: 3306
- 新バージョンのポート番号: 3307
- 稼働中MariaDBのサーバー用my.cnf: /etc/my.cnf
- 新バージョンのサーバー用my.cnf: /var/db/mariadb10/my.cnf
最近では yum で簡単にインストールできるようだが、今回はバージョンアップで上書きしたいわけではなく、別ポートを使って並行稼働させたいので、以前と同じようにソースコードからインストールすることにした。
コンパイルに必要なツール類をインストール
$ yum install cmake $ yum install bison
ソースコードをダウンロード、コンパイル準備
https://downloads.mariadb.org/mariadb/10.1.19/
$ cd /usr/local/src/ $ gzip -d mariadb-10.1.19.tar.gz $ tar xf mariadb-10.1.19.tar $ cd mariadb-10.1.19
コンパイルとインストール
$ cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb-10.1.19 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci $ make # ↑かなり時間がかかるので、複数コア使わせた方が良い。 $ make install $ chown -R mariadb /usr/local/mariadb-10.1.19
環境構築
$ mkdir -p /var/db/mariadb10/data $ cp /usr/local/mariadb-10.1.19/support-files/my-small.cnf /var/db/mariadb10/my.cnf $ vim /var/db/mariadb10/my.cnf [mysqld] user = mariadb # プロセスの実行ユーザーを設定 port = 3307 # 旧バージョンとポートをずらす socket = /var/run/mariadb/mariadb10.sock # ソケットのパスも別にする #... [mysqld_safe] log-error = /var/log/mariadb10/mysqld.log # ログの出力先をずらす pid-file = /var/run/mariadb/mariadb10.pid # PIDファイルの出力先をずらす # :wq $ /usr/local/mariadb-10.1.19/scripts/mysql_install_db --defaults-file=/var/db/mariadb10/my.cnf --basedir=/usr/local/mariadb-10.1.19 --datadir=/var/db/mariadb10/data
起動、終了確認
$ /usr/local/mariadb-10.1.19/bin/mysqld_safe --defaults-file=/var/db/mariadb10/my.cnf --basedir=/usr/local/mariadb-10.1.19 --datadir=/var/db/mariadb10/data & $ /usr/local/mariadb-10.1.19/bin/mysqladmin --defaults-file=/var/db/mariadb10/my.cnf shutdown
クライアント設定
# 個人ユーザーに変更 $ alias mariadb=/usr/local/mariadb-10.1.19/bin/mysql # ~/.bash_profile に書くべし $ vim ~/.my.cnf [client] port = 3307 socket = /var/run/mariadb/mariadb10.sock # 起動 $ su - $ /usr/local/mariadb-10.1.19/bin/mysqld_safe --defaults-file=/var/db/mariadb10/my.cnf --basedir=/usr/local/mariadb-10.1.19 --datadir=/var/db/mariadb10/data & $ exit # rootパスワード設定 $ /usr/local/mariadb-10.1.19/bin/mysqladmin -u root password ******** # 接続確認 $ mariadb -u root -p
データ移行
# ~/.my.cnf を一時的に古い環境設定に変更してから mysqldump を実行する $ /usr/local/mariadb-5.5.xx/bin/mysqldump testdb -u testuser -p >dump.sql # ~/.my.cnf を新しい環境設定に変更してインポートする $ mariadb -u root -p MariaDB[none]> CREATE DATABASE testdb CHARACTER SET utf8 COLLATE utf8_general_ci; MariaDB[none]> GRANT ALL PRIVILEGES ON testdb.* TO testuser@localhost identified by '********' WITH GRANT OPTION; MariaDB[none]> GRANT ALL PRIVILEGES ON testdb.* TO testuser@"%" identified by '********' WITH GRANT OPTION; MariaDB[none]> exit $ mariadb testdb -u testuser -p < dump.sql
リモート接続する場合は iptables で新の方のポートも通してやること。
ひとまずこれで環境構築は終わり、基本的な動作確認までは取れた。