Ubuntu20.04にMySQLをインストールする方法[クイックスタート]
序章
MySQL はオープンソースのデータベース管理システムであり、一般的に人気のある LAMP (Linux、Apache、MySQL、PHP / Python / Perl)スタックの一部としてインストールされます。 リレーショナルモデルを実装し、構造化クエリ言語(SQLとしてよく知られています)を使用してデータを管理します。
このクイックスタートチュートリアルでは、MySQLバージョン8.0をUbuntu20.04サーバーにインストールする方法について説明します。
前提条件
このチュートリアルに従うには、次のものが必要です。
- ルート以外の管理ユーザーとUFWで構成されたファイアウォールを備えた1台のUbuntu20.04サーバー。 セットアップするには、Ubuntu20.04の初期サーバーセットアップガイドに従ってください。
ステップ1—MySQLをインストールする
MySQLをインストールするには、最近行っていない場合は、最初にサーバーのパッケージインデックスを更新します。
- sudo apt update
次に、をインストールします mysql-server
パッケージ:
- sudo apt install mysql-server
MySQLが実行されていることを確認します。
- sudo systemctl start mysql.service
ステップ2—MySQLの構成
MySQLに含まれているセキュリティスクリプトをで実行する sudo
:
- sudo mysql_secure_installation
これにより、MySQLインストールのセキュリティオプションにいくつかの変更を加えることができる一連のプロンプトが表示されます。 最初のプロンプトでは、MySQLパスワードの強度をテストするために使用できるValidatePasswordPluginを設定するかどうかを尋ねられます。
パスワード検証プラグインを設定することを選択した場合、スクリプトはパスワード検証レベルを選択するように要求しますが、最も弱いものは 0
そして最強の存在 2
:
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
次のプロンプトは、MySQL rootユーザーのパスワードを入力して確認することです。
OutputPlease set the password for root here.
New password:
Re-enter new password:
次に、スクリプトは、入力したばかりのパスワードを続行するか、新しいパスワードを入力するかを尋ねます。 パスワードに問題がなければ、次のように入力します 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
後続のすべての質問のデフォルトを受け入れます。
ステップ3—専用のMySQLユーザーを作成して特権を付与する
インストール時に、MySQLはデータベースの管理に使用できる特権 root ユーザーアカウントを作成しますが、管理機能の外部でこのアカウントを使用することは避けるのが最善です。 このステップでは、 root MySQLユーザーを使用して新しいユーザーアカウントを作成し、それに特権を付与する方法の概要を説明します。
rootMySQLユーザーとしてデータベースに接続します。
- sudo mysql
注:別のチュートリアルでMySQLをインストールし、 root のパスワード認証を有効にした場合、MySQLシェルにアクセスするには次のコマンドを使用する必要があります。
- mysql -u root -p
MySQLプロンプトにアクセスできるようになったら、次のコマンドを使用して新しいユーザーを作成できます。 CREATE USER
声明。 これらは、次の一般的な構文に従います。
- CREATE USER 'username'@'host' IDENTIFIED WITH authentication_plugin BY 'password';
ユーザーの認証プラグインの選択に関しては、いくつかのオプションがあります。 The auth_socket
前述のプラグインは、有効なユーザーがデータベースにアクセスするためにパスワードを入力しなくても強力なセキュリティを提供するため、便利です。 ただし、外部プログラムがMySQLと対話する必要がある場合に、事態を複雑にする可能性のあるリモート接続も防止します。
別の方法として、 WITH authentication plugin
構文の一部は、ユーザーにMySQLのデフォルトプラグインで認証させるためのものです。 caching_sha2_password
. 次のocmmandは、で認証するユーザーを作成します caching_sha2_password
. 必ず変更してください sammy
ご希望のユーザー名に password
選択した強力なパスワードに:
- CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password';
注:PHPの一部のバージョンには、次の問題を引き起こす既知の問題があります。 caching_sha2_password
. このデータベースをPHPアプリケーション(たとえば、phpMyAdmin)で使用する場合は、古いもので認証するユーザーを作成することをお勧めしますが、それでも安全です。 mysql_native_password
代わりにプラグイン:
- CREATE USER 'sammy'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
よくわからない場合は、で認証するユーザーをいつでも作成できます caching_sha2_plugin
その後 ALTER
後でこのコマンドを使用します。
- ALTER USER 'sammy'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
新しいユーザーを作成したら、適切な権限をユーザーに付与できます。
説明のために、次のコマンドはユーザーにグローバル特権を付与します CREATE
, ALTER
、 と DROP
データベース、テーブル、ユーザー、および INSERT
, UPDATE
、 と DELETE
サーバー上の任意のテーブルからのデータ。 また、ユーザーにデータをクエリする機能を付与します SELECT
. これを実行します GRANT
ステートメント、置換 sammy
独自のMySQLユーザーの名前を使用して、これらの特権をユーザーに付与するには、次のようにします。
- GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT on *.* TO 'sammy'@'localhost' WITH GRANT OPTION;
警告:一部のユーザーは、MySQLユーザーに ALL PRIVILEGES
特権。次のように、rootユーザーの特権に類似した幅広いスーパーユーザー特権を提供します。
- GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'localhost' WITH GRANT OPTION;
このMySQLユーザーにアクセスできる人は誰でもサーバー上のすべてのデータベースを完全に制御できるため、このような幅広い特権を軽く付与しないでください。
これに続いて、を実行することをお勧めします FLUSH PRIVILEGES
指図:
- FLUSH PRIVILEGES;
次に、MySQLクライアントを終了できます。
- exit
将来、新しいMySQLユーザーとしてログインするには、次のようなコマンドを使用します。
- mysql -u sammy -p
The -p
フラグを設定すると、MySQLクライアントは認証のためにMySQLユーザーのパスワードの入力を求められます。
結論
これで、基本的なMySQLセットアップがサーバーにインストールされました。 次に実行できる次の手順の例をいくつか示します。