RHEL7でRailsアプリのサーバを構築した【MySQLのインストール・設定】

こちらは、

RHEL7でRailsサーバを構築した - takapi86のブログ

MySQLのインストール・設定 に関する記事です。

takapi86.hatenablog.com

MariaDBを削除する

EC2のRHELはデフォルトでMySQLと互換のあるMariaDBが入っています。 どうやら、どちらもインストールされていると競合するという噂があるので、削除してしまいます。

$ sudo yum -y remove mariadb-libs
$ sudo rm -rf /var/lib/mysql/

MySQLyumリポジトリの追加

以下のコマンドでyumリポジトリを追加します。

$ sudo yum -y localinstall https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

rpmについては、以下のURLから該当するものを選択しました。 https://dev.mysql.com/downloads/repo/yum/

MySQLのインストー

以下のコマンドで、 mysql, mysql-devel をインストールします。

$ sudo yum -y install mysql-community-server mysql-devel

バージョンを確認します。

$ mysqld --version
mysqld  Ver 5.7.18 for Linux on x86_64 (MySQL Community Server (GPL))

以下のコマンドでMySQL自動起動の設定を行います。

$ sudo systemctl enable mysqld.service

MySQLを起動します。

$ sudo systemctl start mysqld.service

MySQLのrootユーザーの初期パスワードを確認し、メモしておきます。

MySQL5.7からは、rootの初期パスワードは /var/log/mysqld.log に書き込まれます。

$ less /var/log/mysqld.log

このようにパスワードが含まれています。この場合だと GI(8KOU;xZvi がパスワードです。

[Note] A temporary password is generated for root@localhost: GI(8KOU;xZvi

セキュリティの初期設定

mysql_secure_installationを実行しセキュリティに関する初期設定を行います。 パスワードは先ほどメモした /var/log/mysqld.log に書かれていたものを使用します。

設定する内容については、以下のサイトを参考にするとよいでしょう。

MySQL :: MySQL 5.6 リファレンスマニュアル :: 4.4.5 mysql_secure_installation — MySQL インストールのセキュリティー改善

$ mysql_secure_installation

文字コードの設定

/etc/my.cnf に以下の設定を追加することで、デフォルトの文字コードをutf8に変更します。

character-set-server = utf8

設定後はMySQLを再起動します。

$ sudo systemctl restart mysqld.service

ユーザを作成する

rootでMySQLにログインします。

$ mysql -u root -p

今回は、外部からは参照しないので、以下の設定を追加します。

mysql> CREATE USER 'ユーザ名'@'localhost' IDENTIFIED WITH mysql_native_password BY 'パスワード';
mysql> GRANT ALL PRIVILEGES ON DB名.* TO `ユーザ名`@`localhost`;

以上で、MySQLの設定は完了です。

この手順は、以下のサイトを参考にインストールしました。

MySQL :: MySQL 5.7 Reference Manual :: 2.5.1 Installing MySQL on Linux Using the MySQL Yum Repository