Debian10にMariaDBをインストールする方法
序章
MariaDB は、オープンソースのデータベース管理システム(DBMS)であり、人気のある LAMP (Linux、Apache、MySQL、PHP / Python / Perl)のMySQL部分の代替として一般的に使用されます。 )スタック。 これは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
このチュートリアルでは、MariaDBバージョン10.3をDebian 10サーバーにインストールする方法を説明し、それが実行されており、安全な初期構成になっていることを確認します。
前提条件
このチュートリアルを完了するには、sudo
特権とファイアウォールを持つ非rootユーザーでセットアップされた1台のDebian10サーバーが必要です。 これは、初期サーバーセットアップガイドに従ってセットアップできます。
ステップ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
を押して「なし」を表示します。
次のプロンプトでは、データベース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 アカウントを変更する代わりに、パスワードベースのアクセス用に別の管理者アカウントを作成することをお勧めします。
このプロセスを示すために、[X105X] という新しいアカウントを作成します。このアカウントは、 root アカウントと同じ機能を備えていますが、パスワード認証用に構成されています。 これを行うには、ターミナルからMariaDBプロンプトを開きます。
- sudo mysql
次に、root権限とパスワードベースのアクセス権を持つ新しいユーザーを作成します。 好みに合わせてユーザー名とパスワードを変更します。
- GRANT ALL ON *.* TO 'admin'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
特権をフラッシュして、現在のセッションで保存され、使用可能であることを確認します。
- FLUSH PRIVILEGES;
これに続いて、MariaDBシェルを終了します。
- exit
OutputBye
次に、MariaDBのインストールをテストしましょう。
ステップ4—MariaDBのテスト
デフォルトのリポジトリからインストールすると、MariaDBは自動的に実行を開始します。 これをテストするには、そのステータスを確認します。
- sudo systemctl status mariadb
次のような出力が表示されます。
Output● mariadb.service - MariaDB 10.3.31 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset:
Active: active (running) since Mon 2022-03-14 18:33:32 UTC; 2min 2s ago
Docs: man:mysqld(8)
https://mariadb.com/kb/en/library/systemd/
Main PID: 3229 (mysqld)
Status: "Taking your SQL requests now..."
Tasks: 31 (limit: 4915)
Memory: 74.4M
CGroup: /system.slice/mariadb.service
└─3229 /usr/sbin/mysqld
Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: performance_schema
Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: Phase 6/7: Checking and u
Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: Running 'mysqlcheck' with
Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: # Connecting to localhost
Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: # Disconnecting from loca
Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: Processing databases
Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: information_schema
Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: performance_schema
Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: Phase 7/7: Running 'FLUSH
Mar 14 18:33:32 mariadb /etc/mysql/debian-start[3267]: OK
MariaDBが実行されていない場合は、コマンドsudo systemctl start mariadb
で開始できます。
追加のチェックとして、管理コマンドを実行できるクライアントであるmysqladmin
ツールを使用してデータベースに接続してみることができます。 たとえば、このコマンドは、 root としてMariaDBに接続し、Unixソケットを使用してバージョンを返すように指示します。
- sudo mysqladmin version
出力は次のようになります。
Outputmysqladmin Ver 9.1 Distrib 10.3.31-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Server version 10.3.31-MariaDB-0+deb10u1
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Uptime: 3 min 6 sec
Threads: 6 Questions: 473 Slow queries: 0 Opens: 175 Flush tables: 1 Open tables: 31 Queries per second avg: 2.543
パスワード認証を使用して別の管理ユーザーを構成した場合は、次のコマンドを実行して同じ操作を実行できます。
- mysqladmin -u admin -p version
OutputVer 9.1 Distrib 10.3.31-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Server version 10.3.31-MariaDB-0+deb10u1
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Uptime: 7 min 11 sec
Threads: 6 Questions: 474 Slow queries: 0 Opens: 175 Flush tables: 1 Open tables: 31 Queries per second avg: 1.099
この出力は、MariaDBが稼働中であり、ユーザーが正常に認証できることを意味します。
結論
このガイドでは、SQLサーバーとして機能するようにMariaDBをインストールしました。 インストールプロセス中に、サーバーも保護しました。 オプションで、パッケージの更新全体でMariaDBへの管理アクセスを確保するために、別のユーザーも作成しました。
実行中の安全なMariaDBサーバーができたので、サーバーを操作するために実行できる次の手順の例を次に示します。
MariaDBをより大きなアプリケーションスタックに組み込むこともできます。