前書き

MariaDBは、一般的なhttps://www.digitalocean.com/community/tutorials/how-to-のMySQL部分の代替として一般的に使用されるオープンソースのデータベース管理システムです。 install-linux-apache-mariadb-php-lamp-stack-debian10 [LAMP](Linux、Apache、MySQL、PHP / Python / Perl)スタック。 これはMySQLのドロップイン代替となることを目的としており、DebianはMariaDBパッケージにのみ同梱されています。 MySQLサーバー関連のパッケージをインストールしようとすると、代わりに互換性のあるMariaDB置換バージョンが提供されます。

このインストールガイドの短いバージョンは、次の3つの手順で構成されています。

  • `+ apt +`を使用してパッケージインデックスを更新する

  • + apt`を使用して + mariadb-server`パッケージをインストールします。 パッケージには、MariaDBと対話するための関連ツールも含まれています

  • 付属の `+ mysql_secure_installation +`セキュリティスクリプトを実行して、サーバーへのアクセスを制限します

sudo apt update
sudo apt install mariadb-server
sudo mysql_secure_installation

このチュートリアルでは、Debian 10サーバーにMariaDBバージョン10.3をインストールする方法を説明し、MariaDBバージョン10.3が実行され、安全な初期設定があることを確認します。

前提条件

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

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

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

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

sudo apt update

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

sudo apt install mariadb-server

これらのコマンドはMariaDBをインストールしますが、パスワードの設定やその他の構成変更を求めるプロンプトは表示しません。 デフォルト設定ではMariaDBのインストールが安全ではないため、 `+ mariadb-server +`パッケージが提供するスクリプトを使用してサーバーへのアクセスを制限し、未使用のアカウントを削除します。

ステップ2-MariaDBの構成

新しいMariaDBインストールの場合、次のステップは、付属のセキュリティスクリプトを実行することです。 このスクリプトは、安全性の低いデフォルトオプションの一部を変更します。 これを使用して、リモートの* root *ログインをブロックし、未使用のデータベースユーザーを削除します。

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

sudo mysql_secure_installation

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

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

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

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

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

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

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

sudo mysql

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

MariaDB [(none)]> GRANT ALL ON *.* TO ''@'localhost' IDENTIFIED BY '' WITH GRANT OPTION;

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

MariaDB [(none)]> FLUSH PRIVILEGES;

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

MariaDB [(none)]> exit

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

ステップ4-MariaDBのテスト

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

sudo systemctl status mariadb

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

出力

● mariadb.service - MariaDB 10.3.15 database server
  Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
  Active:  since Fri 2019-07-12 20:35:29 UTC; 47min ago
    Docs: man:mysqld(8)
          https://mariadb.com/kb/en/library/systemd/
Main PID: 2036 (mysqld)
  Status: "Taking your SQL requests now..."
   Tasks: 30 (limit: 2378)
  Memory: 76.1M
  CGroup: /system.slice/mariadb.service
          └─2036 /usr/sbin/mysqld

Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: Phase 6/7: Checking and upgrading tables
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: Running 'mysqlcheck' with connection arguments: --socket='/var/run/mysqld/mysqld.sock' --host='localhost' --socket='/var/run/mysqld/mysqld.sock' --host='localhost' --socket='/var/run/mysqld/mysqld.sock'
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: # Connecting to localhost...
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: # Disconnecting from localhost...
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: Processing databases
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: information_schema
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: performance_schema
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]: Phase 7/7: Running 'FLUSH PRIVILEGES'
Jul 12 20:35:29 deb-mariadb1 /etc/mysql/debian-start[2074]:
Jul 12 20:35:30 deb-mariadb1 /etc/mysql/debian-start[2132]: Triggering myisam-recover for all MyISAM tables and aria-recover for all Aria tables

MariaDBが実行されていない場合、コマンド `+ sudo systemctl start mariadb +`で開始できます。

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

sudo mysqladmin version

次のような出力を受け取るはずです。

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

Server version      10.3.15-MariaDB-1
Protocol version    10
Connection      Localhost via UNIX socket
UNIX socket     /var/run/mysqld/mysqld.sock
Uptime:         48 min 14 sec

Threads: 7  Questions: 474  Slow queries: 0  Opens: 177  Flush tables: 1  Open tables: 31  Queries per second avg: 0.163

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

mysqladmin -u  -p version

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

結論

このガイドでは、SQL Serverとして機能するMariaDBをインストールしました。 インストールプロセス中に、サーバーも保護しました。 オプションで、パッケージ更新全体でMariaDBへの管理アクセスを確保するために、別のユーザーも作成しました。

実行中の安全なMariaDBサーバーができたので、ここでサーバーを操作するために実行できる次のステップの例をいくつか示します。

MariaDBをより大きなアプリケーションスタックに組み込むこともできます。