AWS Aamazon Linux 2 にMysql5.7 | インストール 〜 ユーザ作成まで!

新しくなった Aamazon Linux 2 にMysql5.7をインストールする事が重なったので、参考にどうぞ。

ec2インスタンスを作ったばかりの場合は、以下の記事で初期設定が終わってから、こちらに戻ってきてくださいね!

AWS Amazon EC2 初期設定 | AmazonLinux2を立ち上げたら最初にすべき10の設定 [sshログイン〜ec2-userの削除まで]

AWS Aamazon Linux 2 にMysql5.7 | インストール 〜 ユーザ作成まで!

mysqlをインストールする際、mariadbと入れ替えが行われるので、mariadbを削除する必要はありません。

mariadbがインストールされているか確認

$ yum list installed | grep mariadb
mariadb-libs.x86_64                   1:5.5.64-1.amzn2               installed

mysqlがインストールされているか確認

$ yum list installed | grep mysql

mysqlがインストールできるか確認

$ yum info mysql
読み込んだプラグイン:extras_suggestions, langpacks, priorities, update-motd
エラー: 表示するパッケージはありません

mysql8.0リポジトリの追加(このリポジトリに5.7も含まれています)

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

mysql8.0リポジトリの無効化

$ sudo yum-config-manager --disable mysql80-community

mysql5.7リポジトリの有効化

$ sudo yum-config-manager --enable mysql57-community

mysql5.7がインストールできるか確認

$ yum info mysql-community-server

mysqlインストール

$ sudo yum install mysql-community-server -y
$ mysqld --version
mysqld  Ver 5.7.30 for Linux on x86_64 (MySQL Community Server (GPL))

mysql-develインストール

sudo yum install mysql-devel

自動起動設定

$ sudo systemctl start mysqld.service
$ sudo systemctl enable mysqld.service
$ systemctl status mysqld.service

rootパスワードを確認

$ cat /var/log/mysqld.log | grep password
A temporary password is generated for root@localhost: ************

初期設定

$ mysql_secure_installation
Enter password for user root: ************
New password: @@@@@@@@@@@@
Re-enter new password: @@@@@@@@@@@@
Change the password for root ? ((Press y|Y for Yes, any other key for No) : No
Remove anonymous users? (Press y|Y for Yes, any other key for No) : Yes
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Yes
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Yes
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Yes

文字コードの確認

mysql> show global variables like 'character%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | latin1                     |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.01 sec)
mysql> exit

文字コードの変更([mysqld]と[client]セクションと設定を追加)

$ sudo vi /etc/my.cnf
[mysqld]
+ character_set_server=utf8mb4

[client]
+ default-character-set=utf8mb4

mysql再起動

$ sudo systemctl restart mysqld.service

mysqlにログインして文字コードを確認

$ mysql -u root -p
Enter password: @@@@@@@@@@@@
---
mysql> show global variables like 'character%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8mb4                    |
| character_set_connection | utf8mb4                    |
| character_set_database   | utf8mb4                    |
| character_set_filesystem | binary                     |
| character_set_results    | utf8mb4                    |
| character_set_server     | utf8mb4                    |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
mysql> exit

Mysqlユーザーの追加

mysql> GRANT ALL PRIVILEGES ON *.* TO newuser@localhost IDENTIFIED BY 'password' WITH GRANT OPTION;

確認

mysql> select host,user from mysql.user;
+-----------+---------------+
| host      | user          |
+-----------+---------------+
| localhost | newuser       |
| localhost | mysql.session |
| localhost | mysql.sys     |
| localhost | root          |
+-----------+---------------+
4 rows in set (0.00 sec)

まとめ

今回は、mysql5.7という古いバージョンを敢えて選択しました。

mysqlは mysql8 が出てますし、 Mariadb もあります。
また、 Postgresql もあります。

RDBじゃなくても、
AWSなら DynamoDB
GCPなら BigQuery もあります。

近年、dbにも色んな選択肢がありますよね。

サービスの特性に合わせて、どのDBを選んでもスムーズに環境構築出来るよう、準備していきましょう!

コメント

タイトルとURLをコピーしました