前書き

MariaDBは、一般的なhttps://www.digitalocean.com/community/tutorials/how-to-installの一部としてMySQLの代わりに一般的にインストールされるオープンソースのデータベース管理システムです。 -linux-apache-mariadb-php-lamp-stack-debian9 [LAMP](Linux、Apache、MySQL、PHP / Python / Perl)スタック。 リレーショナルデータベースとSQL(Structured Query Language)を使用してデータを管理します。 MariaDBは、ライセンスに関する懸念により、2009年にMySQLから分岐しました。

インストールの短いバージョンは簡単です。パッケージインデックスを更新し、 `+ mariadb-server +`パッケージ(MariaDBを指す)をインストールしてから、付属のセキュリティスクリプトを実行します。

sudo apt update
sudo apt install mariadb-server
sudo mysql_secure_installation

このチュートリアルでは、Debian 9サーバーにMariaDBバージョン10.1をインストールする方法を説明します。

前提条件

このチュートリアルを実行するには、次のものが必要です。

ステップ1-MariaDBのインストール

Debian 9では、MariaDBバージョン10.1がデフォルトでAPTパッケージリポジトリに含まれています。 Debian MySQL / MariaDBパッケージングチームにより、デフォルトのMySQLバリアントとしてマークされています。

それをインストールするには、サーバーのパッケージインデックスを `+ apt +`で更新します。

sudo apt update

次に、パッケージをインストールします。

sudo apt install mariadb-server

これによりMariaDBがインストールされますが、パスワードの設定やその他の構成の変更は求められません。 これにより、MariaDBのインストールが安全ではなくなるため、次に対処します。

ステップ2-MariaDBの構成

新規インストールの場合は、付属のセキュリティスクリプトを実行する必要があります。 これにより、リモート* root *ログインやサンプルユーザーなどの安全性の低いデフォルトオプションの一部が変更されます。

セキュリティスクリプトを実行します。

sudo mysql_secure_installation

これにより、一連のプロンプトが表示され、MariaDBインストールのセキュリティオプションを変更できます。 最初のプロンプトでは、現在のデータベースの* root *パスワードを入力するよう求められます。 まだ設定していないので、「+ ENTER +」を押して「none」を示します。

次のプロンプトでは、データベースの* root パスワードを設定するかどうかを尋ねられます。 「+ N 」と入力し、「 ENTER +」を押します。 Debianでは、MariaDBの root *アカウントは自動化されたシステムメンテナンスと密接に結びついているため、そのアカウントに設定された認証方法を変更しないでください。 これを行うと、管理アカウントへのアクセスを削除することにより、パッケージの更新がデータベースシステムを破壊する可能性があります。 ソケット認証がユースケースに適さない場合、パスワードアクセス用の追加の管理アカウントをオプションで設定する方法については後で説明します。

そこから、「+ Y 」を押してから「 ENTER +」を押して、後続のすべての質問のデフォルトを受け入れることができます。 これにより、一部の匿名ユーザーとテストデータベースが削除され、リモート* root *ログインが無効になり、MariaDBが行った変更がすぐに反映されるようにこれらの新しいルールがロードされます。

ステップ3-(オプション)ユーザー認証と特権の調整

MariaDB 10.1を実行しているDebianシステムでは、* root * MariaDBユーザーは、パスワードではなくデフォルトで `+ unix_socket +`プラグインを使用して認証するように設定されています。 これにより、多くの場合、セキュリティと使いやすさが向上しますが、外部プログラム(phpMyAdminなど)の管理者権限を許可する必要がある場合にも事態が複雑になります。

サーバーは、ログのローテーションやサーバーの起動と停止などのタスクに* root アカウントを使用するため、 root *アカウントの認証詳細を変更しないことをお勧めします。 `+ / etc / mysql / debian.cnf +`のアカウント認証情報の変更は最初は機能するかもしれませんが、パッケージの更新はそれらの変更を上書きする可能性があります。 * root *アカウントを変更する代わりに、パッケージ管理者は、パスワードベースのアクセスを設定する必要がある場合は、個別の管理アカウントを作成することをお勧めします。

そのためには、* root *アカウントと同じ機能を持つが、パスワード認証用に設定された「+ admin +」という新しいアカウントを作成します。 これを行うには、ターミナルからMariaDBプロンプトを開きます。

sudo mysql

これで、* root *特権とパスワードベースのアクセス権を持つ新しいユーザーを作成できます。 ユーザー名とパスワードを好みに合わせて変更します。

GRANT ALL ON *.* TO ''@'localhost' IDENTIFIED BY '' WITH GRANT OPTION;

特権をフラッシュして、それらが保存され、現在のセッションで使用できることを確認します。

FLUSH PRIVILEGES;

これに続いて、MariaDBシェルを終了します。

exit

最後に、MariaDBのインストールをテストしましょう。

ステップ4-MariaDBのテスト

デフォルトのリポジトリからインストールすると、MariaDBは自動的に実行を開始するはずです。 これをテストするには、ステータスを確認してください。

sudo systemctl status mariadb

次のような出力が表示されます。

出力

● mariadb.service - MariaDB database server
  Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
  Active:  since Tue 2018-09-04 16:22:47 UTC; 2h 35min ago
 Process: 15596 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSIT
 Process: 15594 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS)
 Process: 15478 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||
 Process: 15474 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITI
 Process: 15471 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysql
Main PID: 15567 (mysqld)
  Status: "Taking your SQL requests now..."
   Tasks: 27 (limit: 4915)
  CGroup: /system.slice/mariadb.service
          └─15567 /usr/sbin/mysqld

Sep 04 16:22:45 deb-mysql1 systemd[1]: Starting MariaDB database server...
Sep 04 16:22:46 deb-mysql1 mysqld[15567]: 2018-09-04 16:22:46 140183374869056 [Note] /usr/sbin/mysqld (mysqld 10.1.26-MariaDB-0+deb9u1) starting as process 15567 ...
Sep 04 16:22:47 deb-mysql1 systemd[1]:

MariaDBが実行されていない場合は、 `+ sudo systemctl start mariadb +`で起動できます。

追加のチェックとして、管理コマンドを実行できるクライアントである `+ mysqladmin +`ツールを使用してデータベースへの接続を試すことができます。 たとえば、このコマンドは、* root *としてMariaDBに接続し、Unixソケットを使用してバージョンを返すように指示します。

sudo mysqladmin version

次のような出力が表示されます。

Outputmysqladmin  Ver 9.1 Distrib 10.1.26-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Server version      10.1.26-MariaDB-0+deb9u1
Protocol version    10
Connection      Localhost via UNIX socket
UNIX socket     /var/run/mysqld/mysqld.sock
Uptime:         2 hours 44 min 46 sec

Threads: 1  Questions: 36  Slow queries: 0  Opens: 21  Flush tables: 1  Open tables: 15  Queries per second avg: 0.003

パスワード認証を使用して別の管理ユーザーを構成した場合、次のように入力して同じ操作を実行できます。

mysqladmin -u  -p version

これは、MariaDBが稼働中であり、ユーザーが正常に認証できることを意味します。

結論

これで、サーバーに基本的なMariaDBセットアップがインストールされました。 次のステップの例をいくつか示します。