UnixPower on Networking
  http://www.unix-power.net/

 
 Top - Linux - CentOS7 MariaDBの設定




■MariaDBのインストール

CentOS7よりデータベースサーバのMySQLがMariaDBに置き換えられました。名前は全く違いますが実質的なSQLサーバという意味ではあまり差はないようです。 ( 詳しくは調べておりませんが・・・・ )。MariaDBはyumからインストールを行います。

# yum install mariadb mariadb-server
# rpm -qa | grep maria
mariadb-server-5.5.37-1.el7_0.x86_64
mariadb-5.5.37-1.el7_0.x86_64
mariadb-libs-5.5.37-1.el7_0.x86_64


設定ファイルは/etc/my.cnfになり、/etc/my.cnf.d以下の設定ファイルがインクルードされる形となっています。この中で/etc/my.cnfを編集し文字コードを設定しておきます。

# vi /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
character-set-server=utf8

systemctlコマンドでmariadbを有効にしてから起動します。 ( 有効にしてからでないと起動しませんでした )

# systemctl enable mariadb.service
# systemctl start mariadb.service


続いてMariaDBの初期設定を行います。初期セットアップコマンドがあり対話形式に進めていきますので、それを実行します。rootパスワードを設定するところのみ入力する必要がありますが、その他についてはそのままEnterで大丈夫です。

# mysql_secure_installation
/usr/bin/mysql_secure_installation: 行 379: find_mysql_client: コマンドが見つかりません

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):[enter]
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n][enter]
New password:[パスワード入力]
Re-enter new password:[パスワード入力]
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n][enter]
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n][enter]
 ... Success!

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n][enter]
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n][enter]
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!




■MariaDBでユーザ作成

MariaDBにログインし、データベース操作を行うには以下のようにコマンドを実施します。下記では最初に設定したrootユーザでログインしています。


# mysql -u root -p
Enter password:[rootパスワード入力]
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 5.5.37-MariaDB MariaDB Server

Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>


インストール直後のユーザ一覧を表示するSQL文が以下となります。初期ではrootのみですがホスト名は複数登録されています。MariaDBのユーザはユーザ名@ホスト名がセットとなり一意に識別されます。ただ、ホスト名はいずれも自ホストのことなので自身から接続してくるrootユーザということになります。

MariaDB [(none)]> select user,host,user from mysql.user;
+------+-----------+------+
| user | host      | user |
+------+-----------+------+
| root | 127.0.0.1 | root |
| root | ::1       | root |
| root | localhost | root |
+------+-----------+------+
3 rows in set (0.00 sec)


以下はデータベースtestに対して全ての権限を持ったユーザunix@localhostを登録する例です。

MariaDB [(none)]> grant all on test.* to unix@localhost identified by 'password';


以下はユーザunix@localhostを削除するコマンドです。いきなりユーザ自身を削除するのではなく、権限を先に削除してからユーザを削除します。

MariaDB [(none)]> revoke all on test.* from unix@localhost;
MariaDB [(none)]> delete from mysql.user where user like 'unix' and host like 'localhost';
MariaDB [(none)]> flush privileges;


■MariaDBでデータベース操作

以下のコマンドでデータベースtestを作成します。

MariaDB [(none)]> create database test;


作成したデータベースを確認してみます。

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+


指定のデータベースに移動し、テーブルの作成等を行ってみます。

MariaDB [(none)]> use test;
Database changed
MariaDB [test]> create table test(num int,name varchar(50));
Query OK, 0 rows affected (0.02 sec)
MariaDB [test]> show tables;
+----------------+
| Tables_in_test |
+----------------+
| test           |
+----------------+


作成したテーブルにデータを登録してみます。

MariaDB [test]> insert into test values(1,'ユニックスユーザ1');
MariaDB [test]> insert into test values(2,'ユニックスユーザ2');
MariaDB [test]> select * from test;
+------+---------------------------+
| num  | name                      |
+------+---------------------------+
|    1 | ユニックスユーザ1         |
|    2 | ユニックスユーザ2         |
+------+---------------------------+


登録したデータを更新してみます。

MariaDB [test]> update test set name='ユニックスユーザ10' where num=2;
MariaDB [test]> select * from test;
+------+----------------------------+
| num  | name                       |
+------+----------------------------+
|    1 | ユニックスユーザ1          |
|    2 | ユニックスユーザ10         |
+------+----------------------------+
2 rows in set (0.00 sec)


テーブルに登録されたデータを削除し、削除されたのを確認してみます。

MariaDB [test]> delete from test where num=1;
MariaDB [test]> select * from test;
+------+----------------------------+
| num  | name                       |
+------+----------------------------+
|    2 | ユニックスユーザ10         |
+------+----------------------------+
1 row in set (0.00 sec)


さらにテーブル自身を削除してみます。showコマンドでみたときにEmptyとなっていることを確認します。

MariaDB [test]> drop table test;
MariaDB [test]> show tables;
Empty set (0.00 sec)


データベース自体を削除する際も同様のやりかたです。

MariaDB [test]> drop database test;
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+


■MariaDBのバックアップとリストア

mysqldumpコマンドを使ってデータベースのバックアップを行います。これについてはMySQLと同様です。また下記では対話形式でパスワードを入力していますが、-pオプションを--password='*****'に置き換えることも可能です。

※データベース全体をdump.sqlに吐き出す
# mysqldump -u root -p -x --all-databases > dump.sql
Enter password:[rootパスワード入力] 

※対話形式でなくコマンドにパスワードを埋め込む
# mysqldump -u root --password='********' -x --all-databases > dump.sql

※特定のデータベース(mysql)を指定してファイルに吐き出す
# mysqldump -u root -p mysql > mysql.dump.sql
Enter password:[rootパスワード入力]


上記でバックアップしたファイルを元にリストアをするコマンドが下記となります。

※データベース全体をリストア
# mysql -u root -p < dump.sql
Enter password:[rootパスワード入力] 

※特定のデータベース(mysql)を指定してデータベースをリストア
# mysql -u root -p mysql < mysql.dump.sql
Enter password:[rootパスワード入力]





 Copyright(C) 2003-2015 UnixPower on Networking All rights reserved.