Debian9にMariaDBをインストールする方法
序章
MariaDB はオープンソースのデータベース管理システムであり、一般的に人気のある LAMP (Linux、Apache、MySQL、PHP / Python / Perl)スタックの一部としてMySQLの代わりにインストールされます。 リレーショナルデータベースとSQL(Structured Query Language)を使用してデータを管理します。 MariaDBは、ライセンス上の懸念から2009年にMySQLからフォークされました。
インストールの短いバージョンは単純です。パッケージインデックスを更新し、mariadb-server
パッケージ(MariaDBを指す)をインストールしてから、付属のセキュリティスクリプトを実行します。
sudo apt update sudo apt install mariadb-server sudo mysql_secure_installation
このチュートリアルでは、MariaDBバージョン10.1をDebian9サーバーにインストールする方法について説明します。
前提条件
このチュートリアルに従うには、次のものが必要です。
- この初期サーバーセットアップガイドに従ってセットアップされた1台のDebian9サーバー。これには、
sudo
特権を持つ非rootユーザーとファイアウォールが含まれます。
ステップ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
を押して「なし」を表示します。
次のプロンプトでは、データベース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 'admin'@'localhost' IDENTIFIED BY 'password' 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: active (running) 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]: Started MariaDB database server.
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 admin -p version
これは、MariaDBが稼働中であり、ユーザーが正常に認証できることを意味します。
結論
これで、基本的なMariaDBセットアップがサーバーにインストールされました。 次に実行できる次の手順の例をいくつか示します。