Ubuntu 20.04LTSにMySQLをインストールして構成する方法

My(共同創設者Michael Wideniusの娘名)Structured Query Languageの略であるMySQLは、オープンソースのリレーショナルデータベース管理システムです。 このRDBMSはOracleによってサポートされており、Linux、UNIX、MSWindowsなどのほぼすべてのプラットフォームで実行されます。 MYSQLは通常、オンラインパブリッシングおよびWebベースのアプリケーションの最初の選択肢です。 Facebook、 YouTube と Twitter すべてのRDBMSとしてMySQLを使用しています。 MySQLは非常に人気のあるLAMPスタックの一部です:Linux、 Apache、MySQLおよびPython / PHP / Perl。

この記事では、手順を追って説明します。

  • aptパッケージリポジトリで利用可能な最新バージョンのMySQLをインストールします
  • MySQLセキュリティスクリプトを実行します
  • MySQLシェルにアクセスするようにrootユーザーを構成します
  • 最後に、MySQLが実行されていることをテストします

この記事に記載されているコマンドと手順をUbuntu20.04LTSシステムで実行しました

MySQLのインストールとセキュリティ構成

このセクションでは、UbuntuコマンドラインからMySQLをインストールし、セキュリティを構成する方法について説明します。

アプリケーションランチャーの検索バーから、またはCtrl + Alt + Tを押すことにより、Ubuntuコマンドライン(ターミナル)を開くことができます。

ステップ1:リポジトリインデックスを更新する

インターネットリポジトリから利用可能な最新バージョンのソフトウェアをインストールするには、ローカルリポジトリのインデックスがそれに一致している必要があります。 次のコマンドを次のように実行します sudo ローカルリポジトリインデックスを更新するには:

$ sudo apt-get update

ステップ2:aptを使用してMySQLサーバーをインストールする

次のコマンドを次のように実行してください sudo APTリポジトリからMySQLをインストールします。

$ sudo apt-get install mysql-server

ソフトウェアを追加、削除、構成できるのは、Ubuntuの許可されたユーザーのみであることに注意してください。

システムは、のパスワードを要求する場合があります sudo また、インストールを続行するためのY / nオプションも提供します。 Yと入力し、を押します Enter; その後、MySQLがシステムにインストールされます。 ただし、インターネットの速度によっては、処理に時間がかかる場合があります。

手順3:インストールを確認する(オプション)

ターミナルで次のコマンドを実行して、MySQLのインストールを確認し、バージョン番号を確認することもできます。

$ mysql –version

手順4:提供されているセキュリティスクリプトを実行してセキュリティ構成を行う

MySQLの新しいコピーをインストールするときはいつでも、MySQLインストールのセキュリティを強化するために変更する必要のあるデフォルト設定がいくつかあります。 これには、テストユーザー、テストデータベースの削除、およびrootユーザーによるリモートログインの許可が含まれます。

次のコマンドを次のように実行します sudo セキュリティスクリプトを開始するには:

$ sudo mysql_secure_installation

このコマンドを実行すると、最初にプロンプ​​トが表示されるのは、パスワードの検証プラグインを設定することです。 これにより、選択するパスワードの強度に応じて、rootに安全なパスワードを設定できます。 Yと入力して、パスワードの検証プラグインを開始すると、次のプロンプトが表示されます。

パスワード検証ポリシーレベル

Enter パスワード強度に選択した番号を押して Enter。 次に、システムはrootの新しいパスワードを要求します。 パスワードを入力し、次のプロンプトで再入力します。

MySQLルートパスワードを設定する

システムは、指定されたパスワードの強度を表示し、パスワードを続行するかどうかも尋ねます。

パスワードの強度

はいの場合はYと入力し、を押します Enter。

これで、システムは一度に1つずつ一連の質問をします。これらの質問への回答に応じて、システムのセキュリティを設定できます。

一連の質問:

最初の質問では、匿名のテストユーザーを削除するかどうかを尋ねられます。

匿名ユーザーを削除する

yを押して Enter 鍵。

2番目の質問では、リモートシステムからのrootログインを禁止するかどうかを尋ねられます。 安全なシステムの場合、rootはローカルホストからの接続のみを許可する必要があるため、通常はこれを選択する必要があります。

したがって、yを入力することをお勧めします。

3番目の質問は、「test」という名前のデフォルトのMySQLデータベースをシステムから削除し、そのデータベースへのアクセスも削除するかどうかを尋ねます。

テストデータベースを削除する

yと入力して、このテストデータベースを削除します。

上記で構成したすべての変更を有効にするには、システムがアクセス許可テーブルを再ロードする必要があります。 Enter yおよびすべてのセキュリティ変更が適用されます。

データベースのアクセス許可を再ロードして、変更を適用します

MySQLシェルを使用するようにrootを構成する

セキュリティスクリプトを実行するときに、rootのパスワードを指定しました。 ただし、このユーザーは同じパスワードでMySQLシェルに接続することはできません。 認証方法をデフォルトの「auth_socket」から「mysql_native_password」に変更することにより、MySQLシェルを使用するようにrootを構成できます。

方法は次のとおりです。

ステップ1:MySQLシェルを起動する

まず、次のコマンドを実行してMySQLシェルを起動します。 sudo:

$ sudo mysql

MySQLシェルを起動します

これによりMySQLシェルが起動するため、MySQLプロンプトで作業できます。

ステップ2:MySQLユーザーの認証方法を確認する

MySQLプロンプトで、次のコマンドを入力します。これにより、すべてのMySQLアカウントが現在使用している認証方法/プラグインを確認できます。

mysql> SELECT user、authentication_string、plugin、host FROM mysql.user;

MySQLユーザーのリスト

上記の出力では、rootがデフォルトで認証にauth-socketプラグインを使用していることがわかります。

手順3:ルートの認証方法を変更する

私たちの目標は、rootユーザーにパスワードを使用してMySQLに対して認証させることです。 これを行うには、次のコマンドを実行します。これにより、rootユーザーがmysql_native_passwordで識別されます。 このパスワードは非常に強力である必要があることに注意してください。

mysql> ALTER USER’root ‘@’ localhost ‘IDENTIFIED WITH mysql_native_password BY’password’;

rootユーザーの認証方法を変更する

これ以降、rootユーザーは、提供されたセキュリティスクリプトの実行時に指定したパスワードではなく、上記のコマンドで指定した強力なパスワードを使用できなくなります。

ステップ4:付与テーブルをリロードする

次に、サーバーに新しい権限設定を使用するように指示します。 MySQLコマンドプロンプトで次のコマンドを実行して、許可テーブルを再ロードし、変更を登録します。

mysql> FLUSH PRIVILEGES;

Grantテーブルをリロードします

ステップ5:MySQLユーザーの認証方法を再確認します

ここで、次のコマンドを使用してMySQLユーザーアカウントの認証方法を再確認すると、rootユーザーが認証にmysql_native_passwordプラグインを使用していることがわかります。

mysql> SELECT user、authentication_string、plugin、host FROM mysql.user;

認証方法を再確認してください

これで、rootユーザーが安全なパスワードを使用してMySQLシェルに接続するように設定されたので、次のようにexitコマンドを使用してシェルを終了できます。

mysql> exit

MySQLが実行されているかどうかのテスト

MySQLがシステムで実行されているかどうかをテストするには、次のいずれかの方法を使用できます。

方法1:mysql.serviceのステータスを確認します

システムにMySQLをインストールした後、mysql.serviceが自動的に実行されている可能性があります。 次のコマンドの出力は、サービスのアクティブなステータスを確認する必要があります。

$ systemctl status mysql.service

MySQLサービスのステータスを確認する

何らかの理由でサービスが実行されていない場合は、次のコマンドを次のように使用できます。 sudo サービスを開始するには:

$ sudo systemctl start mysql

必要に応じて、次のコマンドを使用してサービスを再度停止できます。

$ sudo systemctl stop mysql

方法2:rootとしてMySQL Adminに接続し、管理コマンドを実行する

MySQL Adminは、MySQLで管理操作を実行できるようにするクライアントです。 として example、管理コマンドの1つを実行して、システムが正しく実行されているかどうか、およびルートが正しく実行されているかどうかを確認しましょう。

$ sudo mysqladmin -p-uルートバージョン

このコマンドは、rootとしてMySQLに接続し、rootパスワードを取得してから、MySQLを返すためのものです。 admin バージョンナンバー。

mysqladminコマンドでMySQLのバージョンを確認します

コマンドが想定どおりに動作し、上記と同様の出力を生成する場合は、MySQLが稼働していることを確認できます。

UbuntuにMySQLをインストールしてセットアップするプロセスは、特にコマンドラインを使用する場合、一部の人にとっては面倒に思えるかもしれません。 ただし、上記の手順を1つずつ注意深く実行すれば、Ubuntuで実行されているMySQLの信頼性が高く、安全で安定したインストールに問題はありません。