序章

MySQL はオープンソースのデータベース管理システムであり、一般的に人気のある LAMP (Linux、Apache、MySQL、PHP / Python / Perl)スタックの一部としてインストールされます。 リレーショナルモデルを実装し、構造化クエリ言語(SQLとしてよく知られています)を使用してデータを管理します。

このクイックスタートチュートリアルでは、MySQLバージョン8.0をUbuntu20.04サーバーにインストールする方法について説明します。

前提条件

このチュートリアルに従うには、次のものが必要です。

  • ルート以外の管理ユーザーとUFWで構成されたファイアウォールを備えた1台のUbuntu20.04サーバー。 セットアップするには、Ubuntu20.04初期サーバーセットアップガイドに従ってください。

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

MySQLをインストールするには、最近行っていない場合は、最初にサーバーのパッケージインデックスを更新します。

  1. sudo apt update

次に、をインストールします mysql-server パッケージ:

  1. sudo apt install mysql-server

MySQLが実行されていることを確認します。

  1. sudo systemctl start mysql.service

ステップ2—MySQLの構成

MySQLに含まれているセキュリティスクリプトをで実行する sudo:

  1. sudo mysql_secure_installation

これにより、MySQLインストールのセキュリティオプションにいくつかの変更を加えることができる一連のプロンプトが表示されます。 最初のプロンプトでは、MySQLパスワードの強度をテストするために使用できるValidatePasswordPluginを設定するかどうかを尋ねられます。

パスワード検証プラグインを設定することを選択した場合、スクリプトはパスワード検証レベルを選択するように要求しますが、最も弱いものは 0 そして最強の存在 2:

Output
Securing 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ユーザーのパスワードを入力して確認することです。

Output
Please set the password for root here. New password: Re-enter new password:

次に、スクリプトは、入力したばかりのパスワードを続行するか、新しいパスワードを入力するかを尋ねます。 パスワードに問題がなければ、次のように入力します Y スクリプトを続行するには:

Output
Estimated 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ユーザーとしてデータベースに接続します。

  1. sudo mysql

注:別のチュートリアルでMySQLをインストールし、 root のパスワード認証を有効にした場合、MySQLシェルにアクセスするには次のコマンドを使用する必要があります。

  1. mysql -u root -p

MySQLプロンプトにアクセスできるようになったら、次のコマンドを使用して新しいユーザーを作成できます。 CREATE USER 声明。 これらは、次の一般的な構文に従います。

  1. 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 選択した強力なパスワードに:

  1. CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password';

:PHPの一部のバージョンには、次の問題を引き起こす既知の問題があります。 caching_sha2_password. このデータベースをPHPアプリケーション(たとえば、phpMyAdmin)で使用する場合は、古いもので認証するユーザーを作成することをお勧めしますが、それでも安全です。 mysql_native_password 代わりにプラグイン:

  1. CREATE USER 'sammy'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

よくわからない場合は、で認証するユーザーをいつでも作成できます caching_sha2_plugin その後 ALTER 後でこのコマンドを使用します。

  1. ALTER USER 'sammy'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

新しいユーザーを作成したら、適切な権限をユーザーに付与できます。

説明のために、次のコマンドはユーザーにグローバル特権を付与します CREATE, ALTER、 と DROP データベース、テーブル、ユーザー、および INSERT, UPDATE、 と DELETE サーバー上の任意のテーブルからのデータ。 また、ユーザーにデータをクエリする機能を付与します SELECT. これを実行します GRANT ステートメント、置換 sammy 独自のMySQLユーザーの名前を使用して、これらの特権をユーザーに付与するには、次のようにします。

  1. GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT on *.* TO 'sammy'@'localhost' WITH GRANT OPTION;

警告:一部のユーザーは、MySQLユーザーに ALL PRIVILEGES 特権。次のように、rootユーザーの特権に類似した幅広いスーパーユーザー特権を提供します。

  1. GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'localhost' WITH GRANT OPTION;

このMySQLユーザーにアクセスできる人は誰でもサーバー上のすべてのデータベースを完全に制御できるため、このような幅広い特権を軽く付与しないでください。

これに続いて、を実行することをお勧めします FLUSH PRIVILEGES 指図:

  1. FLUSH PRIVILEGES;

次に、MySQLクライアントを終了できます。

  1. exit

将来、新しいMySQLユーザーとしてログインするには、次のようなコマンドを使用します。

  1. mysql -u sammy -p

The -p フラグを設定すると、MySQLクライアントは認証のためにMySQLユーザーのパスワードの入力を求められます。

結論

これで、基本的なMySQLセットアップがサーバーにインストールされました。 次に実行できる次の手順の例をいくつか示します。