序章

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

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

前提条件

このチュートリアルを完了するには、CentOS8を実行しているサーバーが必要です。 このサーバーには、管理者権限を持つroot以外のユーザーと、で構成されたファイアウォールが必要です。 firewalld. これを設定するには、CentOS8初期サーバーセットアップガイドを参照してください。

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

CentOS 8では、MySQLバージョン8はデフォルトのリポジトリから利用できます。

次のコマンドを実行して、 mysql-server パッケージとその依存関係の数:

  1. sudo dnf install mysql-server

プロンプトが表示されたら、を押します y その後 ENTER 続行することを確認するには:

Output
. . . Install 49 Packages Total download size: 46 M Installed size: 252 M Is this ok [y/N]: y

これで、MySQLはサーバーにインストールされますが、まだ動作していません。 インストールしたパッケージは、MySQLを次のように実行するように構成します。 systemd 名前の付いたサービス mysqld.service. MySQLを使用するには、次のコマンドで開始する必要があります。 systemctl 指図:

  1. sudo systemctl start mysqld.service

サービスが正しく実行されていることを確認するには、次のコマンドを実行します。 多くの人にとって注意してください systemctl コマンド—含む start そして、ここに示されているように、 status —含める必要はありません .service サービス名の後:

  1. sudo systemctl status mysqld

MySQLが正常に開始された場合、出力にはMySQLサービスがアクティブであることが示されます。

Output
● mysqld.service - MySQL 8.0 database server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2020-03-12 14:07:41 UTC; 1min 7s ago Main PID: 15723 (mysqld) Status: "Server is operational" Tasks: 38 (limit: 5056) Memory: 474.2M CGroup: /system.slice/mysqld.service └─15723 /usr/libexec/mysqld --basedir=/usr Mar 12 14:07:32 cent-mysql-3 systemd[1]: Starting MySQL 8.0 database server... Mar 12 14:07:32 cent-mysql-3 mysql-prepare-db-dir[15639]: Initializing MySQL database Mar 12 14:07:41 cent-mysql-3 systemd[1]: Started MySQL 8.0 database server.

次に、サーバーが次のコマンドで起動するたびに起動するようにMySQLを設定します。

  1. sudo systemctl enable mysqld

注:この動作を変更して、MySQLの起動時の起動を無効にしたい場合は、次のコマンドを実行してください。

  1. sudo systemctl disable mysqld

これで、MySQLがサーバーにインストールされ、実行され、有効になります。 次に、MySQLインスタンスにプリインストールされているシェルスクリプトを使用してデータベースのセキュリティを強化する方法について説明します。

ステップ2—MySQLを保護する

MySQLには、MySQLのセキュリティを向上させるためにいくつかのデフォルト設定オプションを変更できるセキュリティスクリプトが含まれています。

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

  1. sudo mysql_secure_installation

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

パスワード検証プラグインを設定することを選択した場合、スクリプトはパスワード検証レベルを選択するように要求します。 最強のレベル—入力して選択します 2 —パスワードは8文字以上で、大文字、小文字、数字、特殊文字を組み合わせて使用する必要があります。

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

Validate Password Pluginの設定を選択したかどうかに関係なく、次のプロンプトはMySQL rootユーザーのパスワードを設定することです。 選択した安全なパスワードを入力して確認します。

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

Validate Password Pluginを使用した場合は、新しいパスワードの強度に関するフィードバックを受け取ります。 次に、スクリプトは、入力したばかりのパスワードを続行するか、新しいパスワードを入力するかを尋ねます。 入力したパスワードの強度に満足していると仮定して、次のように入力します。 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 後続のすべての質問のデフォルトを受け入れます。 これにより、一部の匿名ユーザーとテストデータベースが削除され、リモートルートログインが無効になり、これらの新しいルールが読み込まれるため、MySQLは行った変更をすぐに尊重します。

これで、CentOS8サーバーにMySQLをインストールして保護しました。 最後のステップとして、データベースがアクセス可能であり、期待どおりに機能していることをテストします。

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

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

  1. mysqladmin -u root -p version

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

出力
mysqladmin  Ver 8.0.17 for Linux on x86_64 (Source distribution)
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

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.17
Protocol version	10
Connection		Localhost via UNIX socket
UNIX socket		/var/lib/mysql/mysql.sock
Uptime:			2 hours 52 min 37 sec

Threads: 2  Questions: 20  Slow queries: 0  Opens: 131  Flush tables: 3  Open tables: 48  Queries per second avg: 0.001

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

MySQLに接続してデータの追加を開始する場合は、次を実行します。

  1. mysql -u root -p

前のように mysqladmin コマンド、このコマンドには、 -u オプション。接続するユーザー(この場合は root )を指定でき、 -p オプション。前の手順で設定したユーザーパスワードの入力を求めるコマンドを指示します。

root MySQLユーザーのパスワードを入力すると、MySQLプロンプトが表示されます。

そこから、MySQLインストールを使用してデータベースを作成およびロードし、クエリの実行を開始できます。

結論

このチュートリアルに従うことで、CentOS8サーバーにMySQLをインストールして保護しました。 ここから、NginxとPHPをインストールして、サーバー上で完全に機能するLEMPスタックを使用できます。

MySQLの使用について詳しくは、公式ドキュメントを確認することをお勧めします。