開発者ドキュメント

Ubuntu20.04にMySQLをインストールする方法[クイックスタート]

序章

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

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

前提条件

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

このページに埋め込まれているインタラクティブ端末を使用して、このチュートリアルでMySQLのインストールと構成を試すこともできます。 次のLaunch an Interactive Terminal!ボタンをクリックして開始します。

ステップ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';

ユーザーの認証プラグインの選択に関しては、いくつかのオプションがあります。 前述の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';

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

説明のために、次のコマンドは、CREATEALTER、およびDROPデータベース、テーブル、およびユーザーにグローバル特権を付与し、[に権限を付与します。サーバー上の任意のテーブルからのX166X]、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

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

結論

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

モバイルバージョンを終了