CentOS 6.4 に MariaDB 5.5 をインストールする
RHEL 7 からデフォルトでインストールできる DB が MySQL から MariaDB に変わるかも、という話を読んだので、ちょっと使ってみようと思い立ちインストールしてみました。
OS は CentOS 6.4 x86_64 です。
インストール
MariaDB - Setting up MariaDB Repositories - MariaDB
https://downloads.mariadb.org/mariadb/repositories/
まずは上記のページより、環境に合わせた yum のリポジトリ設定を表示します。
設定が表示されたら yum のリポジトリ設定ファイルを作成。
# vi /etc/yum.repos.d/mariadb.repo
先ほどのページで表示された内容を記述します。
ここでは CentOS 6.4 x86_64 なので以下のような内容になります。
[mariadb] name = MariaDB baseurl = http://yum.mariadb.org/5.5/centos6-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 enable=0
取りあえず enable は 0 にしておきました。
yum リポジトリの準備が出来たので、次は GPG 鍵をインポート。
# rpm --import https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
いよいよインストールします。
ここでは、MariaDB-server と MariaDB-client をインストールしました。
# yum install --enablerepo=mariadb MariaDB-server MariaDB-client
CentOS 6 系の場合、postfix やいくつかのパッケージが mysql-libs に依存しているのですが、MariaDB を Yum からインストールする場合は、以下のように自動的に MariaDB-compat パッケージへと置き換えてくれるようです。
====================================================================================================== Package Arch Version Repository Size ====================================================================================================== Installing: MariaDB-client x86_64 5.5.31-1 mariadb 10 M MariaDB-compat x86_64 5.5.31-1 mariadb 2.7 M replacing mysql-libs.x86_64 5.1.69-1.el6_4 ・ ・ ・
これは楽ですね。
インストールしたらまずは MySQL サーバのデフォルトのキャラクターセットを UTF-8 に変更します。
設定ファイルは /etc/my.cnf.d/server.cnf を使うようです。
# vi /etc/my.cnf.d/server.cnf
[mysqld] セクションに character-set-server=utf8 を記述します。
この辺の設定項目は MySQL と同じっぽい。
[mysqld] character-set-server=utf8
MySQL と比べるとデフォルトの状態で設定ファイルの中身がスカスカな感じですが、実際どんな値がデフォルトになってるんでしょうね?
その辺もそのうち確認してみたいです。
取りあえずここでは後回しにして、サーバを起動します。
# service mysql start
サーバの名前は mysql のままでした。
サーバが起動したら、mysql_secure_installation を実行して root ユーザへのパスワード設定や、root でのリモートログインの禁止などの設定を行っておきます。
# mysql_secure_installation
完了したらクライアントから接続してみます。
クライアントのコマンド名も mysql のままでした。
# mysql -uroot -p
サーバのステータスを表示して、キャラクターセットが utf8 になっていることを確認します。
MariaDB [(none)]> \s -------------- mysql Ver 15.1 Distrib 5.5.31-MariaDB, for Linux (x86_64) using readline 5.1 Connection id: 9 Current database: Current user: root@localhost SSL: Not in use Current pager: stdout Using outfile: '' Using delimiter: ; Server: MariaDB Server version: 5.5.31-MariaDB MariaDB Server Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: utf8 Db characterset: utf8 Client characterset: utf8 Conn. characterset: utf8 UNIX socket: /var/lib/mysql/mysql.sock Uptime: 4 min 30 sec Threads: 1 Questions: 27 Slow queries: 0 Opens: 1 Flush tables: 2 Open tables: 27 Queries per second avg: 0.100 --------------
プロンプトが MariaDB となっている以外は見慣れた感じですね。
使用可能なエンジンを確認してみると以下のような感じ。
MariaDB [(none)]> show engines; +--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+ | Engine | Support | Comment | Transactions | XA | Savepoints | +--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+ | CSV | YES | CSV storage engine | NO | NO | NO | | MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO | | MyISAM | YES | MyISAM storage engine | NO | NO | NO | | BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO | | MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO | | FEDERATED | YES | FederatedX pluggable storage engine | YES | NO | YES | | ARCHIVE | YES | Archive storage engine | NO | NO | NO | | InnoDB | DEFAULT | Percona-XtraDB, Supports transactions, row-level locking, and foreign keys | YES | YES | YES | | PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO | | Aria | YES | Crash-safe tables with MyISAM heritage | NO | NO | NO | +--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+ 10 rows in set (0.00 sec)
InnoDB の実装がデフォルトで Percona-XtraDB になってるみたいです。
これはなかなか嬉しいかも。
ちなみに MariaDB-devel パッケージを入れれば、Ruby の mysql2 ライブラリも問題なくインストールできます。
軽く触った限りでは、Rails からも特に MariaDB という事を意識せず、 MySQL と同じ設定で使用できました。
これから少しずつ触ってみようかな。