序章

MySQL はオープンソースのデータベース管理システムであり、一般的に人気のある LEMP (Linux、Nginx、MySQL / MariaDB、PHP / Python / Perl)スタックの一部としてインストールされます。 リレーショナルデータベースとSQL(Structured Query Language)を使用してデータを管理します。

CentOS 7は、元のMySQL開発者によって管理され、MySQLの代替として設計されたMySQLのフォークであるMariaDBを好みます。 CentOS7でyum install mysqlを実行する場合、MySQLではなくMariaDBがインストールされます。 MySQLとの違いについて疑問がある場合。 MariaDB、MariaDBは通常MySQLの代わりにシームレスに動作するため、MySQLの特定のユースケースがない限り、 Centos7にMariaDBをインストールする方法ガイドを参照してください。

このチュートリアルでは、CentOS7サーバーにMySQLバージョン8をインストールする方法について説明します。

前提条件

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

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

はじめに述べたように、MySQLをインストールするYumコマンドは、実際にはMariaDBをインストールします。 MySQLをインストールするには、MySQLのパッケージを提供するMySQLコミュニティのYumリポジトリにアクセスする必要があります。

Webブラウザーで、次のサイトにアクセスします。

https://dev.mysql.com/downloads/repo/yum/

目立つダウンロードリンクはファイルに直接つながっていないことに注意してください。 代わりに、ログインまたはアカウントへのサインアップに招待される次のページに移動します。 アカウントを作成したくない場合は、「いいえ、ダウンロードを開始してください」というテキストを見つけて、右クリックしてリンクの場所をコピーするか、以下のコマンドでバージョン番号を編集できます。

目的のバージョンを見つけて、以下のリンクで必要に応じて更新します。

Screencapture highlighting current yum repo name

  1. curl -sSLO https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm

rpmファイルが保存されたら、md5sumを実行し、サイトにリストされている対応するMD5値と比較して、ダウンロードの整合性を確認します。

  1. md5sum mysql80-community-release-el7-5.noarch.rpm
Output
e2bd920ba15cd3d651c1547661c60c7c mysql80-community-release-el7-5.noarch.rpm

この出力をサイトの適切なMD5値と比較します。

Screencapture highlighting md5dsum

ファイルが破損または変更されていないことを確認したので、パッケージをインストールします。

  1. sudo rpm -ivh mysql57-community-release-el7-9.noarch.rpm

これにより、2つの新しいMySQL yumリポジトリが追加され、それらを使用してMySQLサーバーをインストールできるようになります。

  1. sudo yum install mysql-server

yを押して、続行することを確認します。 パッケージを追加したばかりなので、GPGキーを受け入れるように求められます。 yを押してダウンロードし、インストールを完了します。

ステップ2—MySQLを起動する

次のコマンドでデーモンを起動します。

  1. sudo systemctl start mysqld

systemctlは、すべてのサービス管理コマンドの結果を表示するわけではないため、成功したことを確認するために、次のコマンドを使用します。

  1. sudo systemctl status mysqld

MySQLが正常に起動した場合、出力にはActive: active (running)が含まれ、最終行は次のようになります。

  1. Dec 01 19:02:20 centos-512mb-sfo2-02 systemd[1]: Started MySQL Server.

注: MySQLは、インストール時に起動時に自動的に起動できるようになります。 そのデフォルトの動作はsudo systemctl disable mysqldで変更できます

インストールプロセス中に、MySQLrootユーザーの一時パスワードが生成されます。 次のコマンドを使用して、mysqld.logでそれを見つけます。

  1. sudo grep 'temporary password' /var/log/mysqld.log
Output
2022-01-24T19:54:46.313728Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: mqRfBU_3Xk>r

インストールを保護するために次のステップで必要になるパスワードと、パスワードを変更する必要がある場所をメモします。 デフォルトのパスワードポリシーでは、少なくとも1つの大文字、1つの小文字、1つの数字、および1つの特殊文字を含む12文字が必要です。

ステップ3—MySQLの構成

MySQLには、リモートルートログインやサンプルユーザーなどの安全性の低いデフォルトオプションの一部を変更するためのセキュリティスクリプトが含まれています。

このコマンドを使用して、セキュリティスクリプトを実行します。

  1. sudo mysql_secure_installation

これにより、デフォルトのrootパスワードの入力を求められます。 入力するとすぐに変更する必要があります。

Output
The existing password for the user account root has expired. Please set a new password. New password:

少なくとも1つの大文字、1つの小文字、1つの数字、および1つの特殊文字を含む新しい12文字のパスワードを入力します。 プロンプトが表示されたら、再入力します。

新しいパスワードの強度に関するフィードバックを受け取り、すぐにパスワードを再度変更するように求められます。 やったばかりなので、自信を持ってNoと言うことができます。

Output
Estimated strength of the password: 100 Change the password for root ? (Press y|Y for Yes, any other key for No) :

パスワードを再度変更するプロンプトを拒否した後、Yを押してから、ENTERを押して、匿名ユーザーを削除し、リモートルートログインを禁止し、テストデータベースを削除します。それにアクセスし、特権テーブルをリロードします。

インストールを確保したので、テストしてみましょう。

ステップ4—MySQLをテストする

管理コマンドを実行できるクライアントであるmysqladminツールに接続することで、インストールを確認し、インストールに関する情報を取得できます。 次のコマンドを使用して、 root -u root)としてMySQLに接続し、パスワード(-p)の入力を求めて、バージョンを返します。

  1. mysqladmin -u root -p version

次のような出力が表示されます。

出力
mysqladmin  Ver 8.0.28 for Linux on x86_64 (MySQL Community Server - GPL)
Copyright (c) 2000, 2022, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Server version		8.0.28
Protocol version	10
Connection		Localhost via UNIX socket
UNIX socket		/var/lib/mysql/mysql.sock
Uptime:			3 min 2 sec

Threads: 2  Questions: 14  Slow queries: 0  Opens: 133  Flush tables: 3  Open tables: 49  Queries per second avg: 0.076

これは、インストールが成功したことを示します。

結論

このチュートリアルでは、CentOS7サーバーにMySQLをインストールして保護しました。 MySQLの使用の詳細については、MySQLコマンドの詳細のこのガイドが役立ちます。 いくつかの追加のセキュリティ対策の実装を検討することもできます。