CentOS 7にMySQLをインストールする方法

導入

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

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

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

前提条件

このチュートリアルに従うには、以下が必要です:

  • A CentOS 7 with a non-root user with sudo privileges. You can learn more about how to set up a user with these privileges in the Initial Server Setup with CentOS 7 guide.

ステップ1 — MySQLのインストール

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

ウェブブラウザで以下のURLにアクセスします:

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

突出したダウンロードリンクはファイルに直接リンクしていません。代わりに、後続のページに案内され、ログインまたはアカウント登録を求められます。アカウントを作成したくない場合は、”No thanks, just start my download”というテキストを見つけて、右クリックしてリンク先の場所をコピーするか、以下のコマンドでバージョン番号を編集できます。

希望するバージョンを見つけ、以下のリンクを必要に応じて更新します:

  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値と比較します:

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

  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で変更できます。

インストールプロセス中に、MySQLのルートユーザー用に一時的なパスワードが生成されます。このコマンドで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

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

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

少なくとも1つの大文字、1つの小文字、1つの数字、および1つの特殊文字を含む、新しい12文字のパスワードを入力します。求められたときに再入力してください。

新しいパスワードの強度についてフィードバックがあり、すぐに再度変更するよう促されます。すでに変更したので、「いいえ」と自信を持って言うことができます:

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 ツールを使用して情報を取得できます。これは、管理コマンドを実行できるクライアントです。次のコマンドを使用して、MySQL に root として接続し、パスワードを入力し、バージョンを返します。

  1. mysqladmin -u root -p version

次のような出力が表示されるはずです:

Output
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

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

結論

このチュートリアルでは、CentOS 7 サーバーに MySQL をインストールしてセキュリティを確保しました。MySQL の使用方法について詳しく知りたい場合は、MySQL コマンドの学習ガイドが役立ちます。また、いくつかの追加のセキュリティ対策を実装することも検討してください。

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-centos-7