Rocky Linux 9にMySQLをインストールする方法
導入です。
MySQLはオープンソースのデータベース管理システムであり、一般的なLEMP(Linux、Nginx、MySQL/MariaDB、PHP/Python/Perl)スタックの一部としてよくインストールされます。MySQLはリレーショナルモデルと構造化クエリ言語(SQL)を実装して、データの管理とクエリを行います。
このチュートリアルでは、Rocky Linux 9 サーバーに MySQL バージョン 8 をインストールする方法について説明します。
前提条件
このチュートリアルを完了するには、Rocky Linux 9を実行しているサーバーが必要です。このサーバーは、管理者権限を持つ非ルートユーザーと、firewalldで構成されたファイアウォールを持っている必要があります。これを設定するには、Rocky Linux 9の初期サーバー設定ガイドを参照してください。
ステップ1 – MySQLのインストール
Rocky Linux 9には、デフォルトのリポジトリからMySQLバージョン8が利用可能です。
mysql-serverパッケージとその依存関係の多くをインストールするために、以下のコマンドを実行してください。
- sudo dnf install mysql-server
要求されたときには、yを押してからENTERを押して進行することを確認してください。
. . . Install 49 Packages Total download size: 46 M Installed size: 252 M Is this ok [y/N]: y
それにより、MySQLはサーバーにインストールされますが、まだ稼働していません。ご使用のパッケージは、MySQLをmysqld.serviceというsystemdサービスとして実行するように設定します。MySQLを使用するためには、systemctlコマンドで起動する必要があります。
- sudo systemctl start mysqld.service
サービスが正常に実行されているかを確認するために、以下のコマンドを実行してください。注意してくださいが、systemctlコマンドの多くには、startや、ここで示されているように、statusを除いて、サービス名の後に.serviceを含める必要はありません。
- sudo systemctl status mysqld
もしMySQLが正常に起動していれば、出力にはMySQLサービスがアクティブであることが表示されます。
● 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 rocky9-mysql systemd[1]: Starting MySQL 8.0 database server… Mar 12 14:07:32 rocky9-mysql mysql-prepare-db-dir[15639]: Initializing MySQL database Mar 12 14:07:41 rocky9-mysql systemd[1]: Started MySQL 8.0 database server.
次に、次のコマンドを使用して、サーバーが起動するたびにMySQLが起動するように設定してください。
- sudo systemctl enable mysqld
Note
sudo systemctl disable mysqld
あなたのサーバーには、MySQLがインストールされ、稼働し、有効化されています。次に、MySQLインスタンスに予めインストールされているシェルスクリプトを使用して、データベースのセキュリティを強化する手順を説明します。
ステップ2 – MySQLの保護
MySQLには、MySQLのセキュリティを向上させるためにいくつかのデフォルト設定オプションを変更することができるセキュリティスクリプトが含まれています。
セキュリティスクリプトを使用するには、以下のコマンドを実行してください。
- sudo mysql_secure_installation
これにより、MySQLのインストールのセキュリティオプションを変更するかどうかを尋ねる一連のプロンプトが表示されます。最初のプロンプトでは、MySQLパスワードの強度をテストするために使用できる「Validate Password Plugin」の設定を行うかどうかを尋ねます。
もしバリデートパスワードプラグインを設定する場合、スクリプトはパスワードの検証レベルを選択するように求めます。最も強力なレベルである、2を入力して選択すると、パスワードは少なくとも8文字以上で、大文字、小文字、数字、特殊文字が混在している必要があります。
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のルートユーザーのパスワードを設定する必要があります。ご希望の安全なパスワードを入力して確認してください。
Please set the password for root here. New password: Re-enter new password:
もし、パスワードの検証プラグインを使用した場合、新しいパスワードの強さについてフィードバックが届きます。その後、スクリプトは、入力したパスワードで続行するか、新しいパスワードを入力するかを尋ねます。入力したパスワードの強さに満足している場合は、スクリプトを続行するためにYを入力してください。
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がすぐに変更内容を適用するようになります。
それにより、Rocky Linux 9 サーバーに MySQL がインストールされ、セキュリティが確保されました。最後のステップとして、データベースへのアクセスが正常に動作しているかをテストします。
ステップ3 — MySQLのテストを行う
mysqladminツールを使って、インストールを検証し、それに関する情報を取得することができます。このツールは、管理コマンドを実行するためのクライアントです。以下のコマンドを使用して、MySQLにrootユーザーとして接続し、パスワードを入力し、インストールのバージョンを返します。
- mysqladmin -u root -p version
これに類似した出力が表示されます。
mysqladmin Ver 8.0.28 for Linux on x86_64 (Source distribution)
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: 1 min 11 sec
Threads: 2 Questions: 16 Slow queries: 0 Opens: 133 Flush tables: 3 Open tables: 49 Queries per second avg: 0.225
これは、インストールが成功したことを示しています。
MySQLに接続してデータを追加したい場合は、以下を実行してください。
- mysql -u root -p
前回のmysqladminコマンドのように、このコマンドにも-uオプションが含まれており、接続するユーザー(この場合はroot)を指定することができます。また、-pオプションも含まれており、前の手順で設定したユーザーパスワードを入力するようにコマンドに指示します。
ルートのMySQLユーザーのパスワードを入力すると、MySQLのプロンプトが表示されます。
それから、MySQLのインストールを使ってデータベースを作成し、データを読み込んでクエリを実行することができます。
結論
このチュートリアルに従って、Rocky Linux 9 サーバーに MySQL をインストールし、セキュリティも確保しました。これで、Nginx と PHP をインストールして、サーバー上で完全に動作する LEMP スタックを利用できます。
MySQLの使用方法についてもっと学ぶには、公式のドキュメントをご参照いただくことをお勧めします。