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

投稿者: | 2020-05-06

今回はCentOS8にMySQLのインストール、データベースとユーザーを作成し、MySQLを使用できる状態にする方法を説明します。

実施環境・導入バージョン

OSCentOS 8 最小限のインストール
MySQL8.0.20

事前準備

今回はCentOS8の最小限のインストール環境のため、MySQLのパッケージの取得およびアーカイブを展開するために、wgetとtarをインストールします。

・wgetとtarをインストール
# dnf install -y tar wget

MySQLのインストール

初めに、作業用のフォルダに移動しMySQLのパッケージをダウンロードします。ダウンロード後はアーカイブを展開しパッケージをdnf localinstallコマンドでインストールします。

・作業用フォルダに移動
# cd /usr/local/src

・MySQL 8.0.20のパッケージをダウンロード
# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-1.el8.x86_64.rpm-bundle.tar 

・MySQL 8.0.20のアーカイブを展開
# tar xvf mysql-8.0.19-1.el8.x86_64.rpm-bundle.tar

・MySQL 8.0.20をローカルインストール
dnf localinstall mysql-community-*

MySQLインストール後、パッケージファイルを削除します。

・MySQLのパッケージを削除
# rm -rf mysql-community-*

MySQLの起動

MySQLのインストール後、systemctlコマンドでMySQLを起動します。また、再起動後の自動設定も設定します。

・MySQLを起動
# systemctl start mysqld
# systemctl enable mysqld

MySQLにログイン

MySQL起動後、rootユーザーでログインするためにrootユーザーのパスワードを調べます。

・rootユーザーのパスワードを検索
# grep 'temporary password' /var/log/mysqld.log
2020-05-04T02:08:17.724096Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: #7q0*sr(k5:Y 

root@localhostの後の文字列がrootユーザーのパスワードとなります。今回の例では「7q0*sr(k5:Y」がrootユーザーのパスワードとなるため、ログイン用にコピーしておきます。

rootユーザーのパスワード検索後、MySQLにログインします。Enter passwordと表示されたら、先程のパスワードを入力します。

・MySQLにログイン
# mysql -u root -p
Enter password:
elcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 14
Server version: 8.0.20 MySQL Community Server - GPL

Copyright (c) 2000, 2020, 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.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. 

mysql>

MySQLの入力が表示されたらログイン成功です。

ログインの確認後、rootユーザーのパスワードを変更します。MySQLのデフォルトのパスワードポリシーは以下の内容となっています。

  • パスワードの文字数は8文字以上とする
  • 大文字と小文字を1文字以上入れる
  • 数字を1文字以上入れる
  • 記号を1文字以上入れる

そのため、要件に合わせたパスワードを以下のコマンドで設定します。パスワード部分は設定したいパスワードを入力してください。

・rootユーザーに「5e#Ej8n!o」というパスワードを設定
mysql> alter user 'root'@'localhost' identified by '5e#Ej8n!o';

もし、勉強用等で長いパスワードが面倒という人は、以下のコマンドでパスワードポリシーをLOWに設定しパスワードの文字数8文字のみにすることができます。

・MySQLのパスワードポリシーをLOWに変更
mysql> set global validate_password.policy = "LOW";

データベース、ユーザーを作成

ログイン後、作業用のデータベースを作成します。また、管理者権限が必要な内容以外でrootユーザーを使うのはセキュリティ的に良くないため、作業用のユーザーも作成します。

・作業用のtestdbという名前のデータベースを作成
mysql> create database testdb;

・testdbが作成されているか確認
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| testdb             |
+--------------------+
5 rows in set (0.00 sec)

・ユーザー名「testuser」パスワード「P@ssW0rd」のユーザーを作成
mysql> create user 'testuser'@'localhost' identified by 'P@ssW0rd';

・testuserが作成されているか確認
mysql> select Host, User from mysql.user;
+-----------+------------------+
| Host      | User             |
+-----------+------------------+
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
| localhost | testuser         |
+-----------+------------------+
5 rows in set (0.00 sec)

・testdbを選択し、testuserにtestdbに対する全ての権限を付与
mysql> use testdb;
mysql> grant all on testdb to 'testuser'@'localhost';

※注意
今回は作業・勉強用のためデータベースに対して全ての権限を付与していますが、実際の業務等では開発・運用方針に合わせてユーザー権限を付与してください。

まとめ

  • CentOS8にMySQLをインストールする場合、パッケージからインストールする
  • 初回のrootユーザーのパスワードは「grep ‘temporary password’ /var/log/mysqld.log」コマンドで検索する
  • MySQLへのログインは「mysql」コマンドでログインする
  • ユーザーのパスワードを変更する場合は「alter user」コマンドで変更する
  • データベースの作成は「create database」コマンドを使用する
  • ユーザーの作成は「create user」コマンドを使用する
  • データベースの選択は「use」コマンドを使用する
  • ユーザーへの権限付与は「grant」コマンドを使用する