manekineko倉金家ホームページ

趣味の部屋/サーバー構築メモ その4

データサーバー MariaDB

2014年11月19日
ホームページなどのデータを格納しているデータベースサーバーMariaDB(MySQL)を動かします。


とりあえずHTTPサーバーは動かしたが実際のホームページデータはデータサーバーに入っているのでホームページはまだ表示できない。

データサーバーMySQLは今回からMariaDBというのに変わっている。中身はMySQLと同じとのこと。

設定
まずは簡単に初期設定。
/etc/my.cnf
[mysqld]
datadir=/home/mysql # データベースは別パーティションの/homeにつくる。OSを再インストールしてもデータは残る。

/etc/my.cnf.d/client.cnf
[client]
default-character-set = utf8

/etc/my.cnf.d/server.cnf
[mysqld]
character-set-server = utf8
skip-character-set-client-handshake # サーバー内プロセスからしかアクセスしないのですべてutf-8。
innodb=OFF # innoDBを使わないならメモリ節約のためOFF可能。代わりにdefaultとしてMyISAMを必ず指定。
default-storage-engine = MyISAM # 過去のデータがすべてこれ。

設定はこれだけ。
単に少々のホームページデータを格納するだけで大容量でも高アクセスでもないから特別チューニングもいらないだろう。
SELinux対策
これでMariaDBを動かすとデータディレクトリを変更したのでSELinuxに阻まれるのは目に見えている。
これを見逃すようではSELinuxは役に立たない。

/home/mysqlには現行サーバーのデータをバックアップしてある。いったんこのmysqlデータベースは退避。

で、許可ポリシーをつくるためにSELinuxを一時PermissiveにしておいてMariaDBを幾度か起動、停止。
~]# systemctl start mariadb.service
~]# systemctl stop mariadb.service
~]# ....
案の定SELinuxがぶーたら言うのでそのログを使って許可ポリシーを作成、インストール。
許可ポリシー作成のシェルスクリプトを作ってあるのですぐできる。

ポリシーをインストールして今度はOK。
データディレクトリに新しい管理用データベース/home/mysql/mysqlができています。

前の(現行サーバーの)MySQLのバージョンは5.1、今回のMariaDBは5.5。
概ねMySQL管理用データベースmysqlはバージョンが上るごとに何か追加されていたりして必ずしも互換性がありません。
今回も確認してみると新しいテーブルがあったりしたのでそのまま古いのを使うのはやめて新しいのを使います。
そのためユーザとデータベースの登録をやりなおさなくてはなりませんが、たいした数でもありません。
これはあとでphpMyAdminでやりましょう。phpMyAdminはまだインストールと設定をしていません。

初期設定
新しいmysql管理データベースを使うことにしたのでまずはrootのパスワード登録その他の初期設定が必要です。
mariaDBをスタートしておいて mysql_secure_installation をやります。

最初の
Enter current password for root (enter for none): は空Enter
次の
Set root password? [Y/n] も空Enter
そして、
New password: 
Re-enter new password: 
で二回rootパスワードを入れます。
あとは皆空Enter。
mysql_secure_installationの詳細を

ここでいったんphpMyAdminのインストールと設定。
phpMyAdminを使ってmysqlデータベースにユーザとデータベースを登録、再起動して完了です。