One place for hosting & domains

      2004にMariaDBをインストールする方法

      Ubuntu 20.04にMariaDBをインストールする方法


      はじめに

      MariaDBは、人気が高いLAMP(Linux、Apache、MySQL、PHP/Python/Perl)スタックのデータベース部分のMySQLの代替として使用されているオープンソースリレーショナルデータベース管理システムです。MySQLの代わりになることが意図されています。

      このインストールガイドの簡素版は、次の3つのステップで構成されています。

      • aptを使用したパッケージインデックスを更新
      • aptを使用してmariadb-serverパッケージをインストールするパッケージも関連ツールで制御し、MariaDBと情報を交換する
      • 含まれたmysql_secure_installationセキュリティスクリプトを実行して、サーバーへのアクセスを制限する
      • sudo apt update
      • sudo apt install mariadb-server
      • sudo mysql_secure_installation

      このチュートリアルでは、Ubuntu 20.04サーバーにMariaDBをインストールして、それが作動し安全に初期設定されていることを確認する方法を説明します。

      前提条件

      このチュートリアルに従うには、Ubuntu 20.04を実行しているサーバーが必要です。このサーバーにはroot以外の管理権限が付与されたユーザーと、ufwで設定されたファイアウォールが必要です。Ubuntu 20.04の初期サーバーセットアップガイドに従ってこれをセットアップします。

      ステップ1— MariaDBをインストールする

      本書の執筆時点で、Ubuntu 20.04のデフォルトのAPTリポジトリには、MariaDBバージョン10.3が含まれます。

      インストールするには、aptを使用してサーバーのパッケージインデックスを更新します。

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

      • sudo apt install mariadb-server

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

      ステップ2 — MariaDBを設定する

      新しいMariaDBインストールでは、次のステップが含有されたセキュリティスクリプトを実行します。これにより、リモートrootログインやサンプルユーザーなどの安全性の低いデフォルトオプションの一部が変更されます。

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

      • sudo mysql_secure_installation

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

      Output

      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):

      次のプロンプトでは、データベースrootパスワードをセットアップするかどうかが尋ねられます。Ubuntuでは、MariaDBのrootアカウントが自動システムメンテナンスと密接に結び付けられているため、そのアカウント用に設定された認証方法を変更してはいけません。変更したりすると、パッケージアップデートにより、管理アカウントへのアクセスが削除されることになり、データベースシステムが破損される可能性があります。Nと入力してから、ENTERを押します。

      Output

      . . . 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] N

      その後、ソケット認証が使用ケースに適していなければ、パスワードアクセスのための管理アカウントを追加で設定する方法を扱います。

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

      これで、MariaDBの初期セキュリティ設定が完了しました。次のステップはオプションのステップで、パスワードを使用してMariaDBサーバーに認証する方が好ましい場合には従う必要があります。

      ステップ3 —(オプション)パスワード認証を採用する管理ユーザーを作成する

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

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

      この目的で、 rootアカウントと同じ機能を持つadminと呼ばれる新しいアカウントを作成しますが、パスワード認証用に設定されます。端末からMariaDBプロンプトを開きます。

      次に、root権限とパスワードベースのアクセスを持つ新しいユーザーを作成します。ユーザー名とパスワードを好みに合うように変更してください。

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

      現在のセッションで保存されており利用できることを確認するために、権限をフラッシュします。

      この後、MariaDBシェルを終了します。

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

      ステップ4 — MariaDBをテストする

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

      • sudo systemctl status mariadb

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

      Output

      ● mariadb.service - MariaDB 10.3.22 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2020-05-12 13:38:18 UTC; 3min 55s ago Docs: man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ Main PID: 25914 (mysqld) Status: "Taking your SQL requests now..." Tasks: 31 (limit: 2345) Memory: 65.6M CGroup: /system.slice/mariadb.service └─25914 /usr/sbin/mysqld . . .

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

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

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

      Output

      mysqladmin Ver 9.1 Distrib 10.3.22-MariaDB, for debian-linux-gnu on x86_64 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Server version 10.3.22-MariaDB-1ubuntu1 Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/run/mysqld/mysqld.sock Uptime: 4 min 49 sec Threads: 7 Questions: 467 Slow queries: 0 Opens: 177 Flush tables: 1 Open tables: 31 Queries per second avg: 1.615

      パスワード認証で別の管理ユーザーを設定した場合は、次のように入力することで同じ操作を実行できます。

      • mysqladmin -u admin -p version

      つまり、MariaDBが立ち上がって実行され、ユーザーが正常に認証できるようになっているということです。

      まとめ

      本ガイドでは、MariaDBリレーショナルデータベース管理システムをインストールし、インストールされたmysql_secure_installationスクリプトを使用して保護する方法を示しました。また、MariaDBサーバーの機能をテスト前に、パスワード認証を使用する新しい管理ユーザーを作成するオプションも学びました。

      安全に作動するMariaDBサーバーが確認されたので、サーバーで作業できる次のステップの例をいくつか以下に挙げます。



      Source link