CentOS7にMySQLをインストールする方法
序章
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をインストールする方法について説明します。
前提条件
このチュートリアルに従うには、次のものが必要です。
sudo
権限を持つ非rootユーザーのCentOS7。 これらの権限を持つユーザーをセットアップする方法の詳細については、 CentOS7を使用したサーバーの初期セットアップガイドを参照してください。
ステップ1—MySQLをインストールする
はじめに述べたように、MySQLをインストールするYumコマンドは、実際にはMariaDBをインストールします。 MySQLをインストールするには、MySQLのパッケージを提供するMySQLコミュニティのYumリポジトリにアクセスする必要があります。
Webブラウザーで、次のサイトにアクセスします。
https://dev.mysql.com/downloads/repo/yum/
目立つダウンロードリンクはファイルに直接つながっていないことに注意してください。 代わりに、ログインまたはアカウントへのサインアップに招待される次のページに移動します。 アカウントを作成したくない場合は、「いいえ、ダウンロードを開始してください」というテキストを見つけて、右クリックしてリンクの場所をコピーするか、以下のコマンドでバージョン番号を編集できます。
目的のバージョンを見つけて、以下のリンクで必要に応じて更新します。
- curl -sSLO https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
rpmファイルが保存されたら、md5sum
を実行し、サイトにリストされている対応するMD5値と比較して、ダウンロードの整合性を確認します。
- md5sum mysql80-community-release-el7-5.noarch.rpm
Outpute2bd920ba15cd3d651c1547661c60c7c mysql80-community-release-el7-5.noarch.rpm
この出力をサイトの適切なMD5値と比較します。
ファイルが破損または変更されていないことを確認したので、パッケージをインストールします。
- sudo rpm -ivh mysql57-community-release-el7-9.noarch.rpm
これにより、2つの新しいMySQL yumリポジトリが追加され、それらを使用してMySQLサーバーをインストールできるようになります。
- sudo yum install mysql-server
y
を押して、続行することを確認します。 パッケージを追加したばかりなので、GPGキーを受け入れるように求められます。 y
を押してダウンロードし、インストールを完了します。
ステップ2—MySQLを起動する
次のコマンドでデーモンを起動します。
- sudo systemctl start mysqld
systemctl
は、すべてのサービス管理コマンドの結果を表示するわけではないため、成功したことを確認するために、次のコマンドを使用します。
- sudo systemctl status mysqld
MySQLが正常に起動した場合、出力にはActive: active (running)
が含まれ、最終行は次のようになります。
- Dec 01 19:02:20 centos-512mb-sfo2-02 systemd[1]: Started MySQL Server.
注: MySQLは、インストール時に起動時に自動的に起動できるようになります。 そのデフォルトの動作はsudo systemctl disable mysqld
で変更できます
インストールプロセス中に、MySQLrootユーザーの一時パスワードが生成されます。 次のコマンドを使用して、mysqld.log
でそれを見つけます。
- sudo grep 'temporary password' /var/log/mysqld.log
Output2022-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には、リモートルートログインやサンプルユーザーなどの安全性の低いデフォルトオプションの一部を変更するためのセキュリティスクリプトが含まれています。
このコマンドを使用して、セキュリティスクリプトを実行します。
- sudo mysql_secure_installation
これにより、デフォルトのrootパスワードの入力を求められます。 入力するとすぐに変更する必要があります。
OutputThe existing password for the user account root has expired. Please set a new password.
New password:
少なくとも1つの大文字、1つの小文字、1つの数字、および1つの特殊文字を含む新しい12文字のパスワードを入力します。 プロンプトが表示されたら、再入力します。
新しいパスワードの強度に関するフィードバックを受け取り、すぐにパスワードを再度変更するように求められます。 やったばかりなので、自信を持ってNo
と言うことができます。
OutputEstimated 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
)の入力を求めて、バージョンを返します。
- 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コマンドの詳細のこのガイドが役立ちます。 いくつかの追加のセキュリティ対策の実装を検討することもできます。