Ubuntu20.04にMySQLをインストールする方法
序章
MySQL はオープンソースのデータベース管理システムであり、一般的に人気のある LAMP (Linux、Apache、MySQL、PHP / Python / Perl)スタックの一部としてインストールされます。 リレーショナルモデルを実装し、構造化クエリ言語(SQLとしてよく知られています)を使用してデータを管理します。
このチュートリアルでは、MySQLバージョン8.0をUbuntu20.04サーバーにインストールする方法について説明します。 これを完了すると、次のWebサイトまたはアプリケーションの構築に使用できる実用的なリレーショナルデータベースができあがります。
前提条件
このチュートリアルに従うには、次のものが必要です。
- ルート以外の管理ユーザーとUFWで構成されたファイアウォールを備えた1台のUbuntu20.04サーバー。 これを設定するには、Ubuntu20.04の初期サーバー設定ガイドに従ってください。
このページに埋め込まれているインタラクティブ端末を使用して、このチュートリアルでMySQLのインストールと構成を試すこともできます。 次のLaunch an Interactive Terminal!
ボタンをクリックして開始します。
ステップ1—MySQLをインストールする
Ubuntu 20.04では、APTパッケージリポジトリを使用してMySQLをインストールできます。 この記事の執筆時点で、デフォルトのUbuntuリポジトリで利用可能なMySQLのバージョンはバージョン8.0.27です。
最近インストールしていない場合は、サーバーのパッケージインデックスを更新します。
- sudo apt update
次に、mysql-server
パッケージをインストールします。
- sudo apt install mysql-server
systemctl start
コマンドを使用して、サーバーが実行されていることを確認します。
- sudo systemctl start mysql.service
これらのコマンドはMySQLをインストールして起動しますが、パスワードの設定やその他の構成変更を求めるプロンプトは表示されません。 これによりMySQLのインストールが安全でなくなるため、次にこれに対処します。
ステップ2—MySQLの構成
MySQLを新規インストールする場合は、DBMSに含まれているセキュリティスクリプトを実行する必要があります。 このスクリプトは、リモートルートログインやサンプルユーザーなどの安全性の低いデフォルトオプションの一部を変更します。
sudo
を使用してセキュリティスクリプトを実行します。
- sudo mysql_secure_installation
これにより、MySQLインストールのセキュリティオプションにいくつかの変更を加えることができる一連のプロンプトが表示されます。 最初のプロンプトでは、Validate Password Pluginを設定するかどうかを尋ねられます。このプラグインを使用して、新しいMySQLユーザーのパスワード強度を有効と見なす前にテストできます。
パスワードの検証プラグインを設定することを選択した場合、パスワードで認証するMySQLユーザーは、選択したポリシーを満たすパスワードを持っている必要があります。 2
と入力して選択できる最も強力なポリシーレベルでは、パスワードの長さが8文字以上で、大文字、小文字、数字、特殊文字が混在している必要があります。
OutputSecuring the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: Y
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG:
2
Validate Password Pluginの設定を選択したかどうかに関係なく、次のプロンプトはMySQL rootユーザーのパスワードを設定することです。 選択した安全なパスワードを入力して確認します。
OutputPlease set the password for root here.
New password:
Re-enter new password:
root MySQLユーザーのパスワードを設定した場合でも、このユーザーは現在、MySQLシェルに接続するときにパスワードで認証するように構成されていないことに注意してください。
Validate Password Pluginを使用した場合は、新しいパスワードの強度に関するフィードバックを受け取ります。 次に、スクリプトは、入力したばかりのパスワードを続行するか、新しいパスワードを入力するかを尋ねます。 入力したパスワードの強度に満足している場合は、Y
と入力してスクリプトを続行します。
OutputEstimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : Y
そこから、Y
、次にENTER
を押して、後続のすべての質問のデフォルトを受け入れることができます。 これにより、一部の匿名ユーザーとテストデータベースが削除され、リモートrootログインが無効になり、これらの新しいルールが読み込まれるため、MySQLは行った変更をすぐに尊重します。
スクリプトが完了すると、MySQLのインストールが保護されます。 これで、MySQLクライアントを使用した専用データベースユーザーの作成に進むことができます。
ステップ3—専用のMySQLユーザーを作成して特権を付与する
インストール時に、MySQLはデータベースの管理に使用できるrootユーザーアカウントを作成します。 このユーザーは、MySQLサーバーに対する完全な特権を持っています。つまり、すべてのデータベース、テーブル、ユーザーなどを完全に制御できます。 このため、管理機能以外でこのアカウントを使用することは避けてください。 このステップでは、 root MySQLユーザーを使用して新しいユーザーアカウントを作成し、それに特権を付与する方法の概要を説明します。
MySQL 5.7
(およびそれ以降のバージョン)を実行しているUbuntuシステムでは、 root MySQLユーザーは、パスワードではなくデフォルトでauth_socket
プラグインを使用して認証するように設定されています。 このプラグインでは、MySQLクライアントを呼び出すオペレーティングシステムユーザーの名前がコマンドで指定されたMySQLユーザーの名前と一致する必要があるため、[X184X]