Help us understand the problem. What is going on with this article?

AWS Amazon Linux2にMySQL5.7を構築する

More than 1 year has passed since last update.

Amazon Linux 2 に MySQL 5.7 のインストールをしようとして思いの外詰まってしまったので手順を残しておく。

前提

  • Amazon Linux 2 AMI (HVM)

手順

デフォルトでmariaDBがデフォルトが入っているのでアンインストールしておく。

$ sudo yum list installed | grep mariadb
$ sudo yum remove mariadb-libs

リポジトリを追加する。centos7系なのでel6ではなくel7をインストールする。

$ sudo yum install http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

インストールする。

$ sudo yum install mysql-community-server

依存性の問題が解決できないときはel6で入れてしまっていなか確認する。
念のためキャッシュも消しておくとよい。

$ sudo yum clean all
$ sudo rm -rf /var/cache/yum

正しくインストールされたことを確認する。

$ yum repolist enabled | grep "mysql.*-community.*"

バージョンを確認する。

$ mysql --version
mysql  Ver 14.14 Distrib 5.7.23, for Linux (x86_64) using  EditLine wrapper

$ mysqld -V
mysqld  Ver 5.7.23 for Linux on x86_64 (MySQL Community Server (GPL))

起動してみる。

$ sudo /bin/systemctl start mysqld.service

起動できているか確認してみる。

$ systemctl list-units | grep mysqld.service
mysqld.service   loaded active running   MySQL Server

自動で起動するようにしておく。

# 現在の状態を確認する
$ systemctl is-enabled mysqld.service
disabled

# enableに変更しておく
$ systemctl enable mysqld.service

ログインしてみる。

$ mysql -u root -p
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

デフォルトでパスワードかかっていた…
パスワードを確認する。

$ cat /var/log/mysqld.log | grep password
2018-09-01T10:27:36.011362Z 1 [Note] A temporary password is generated for root@localhost: ************

調べたパスワードで再度ログインしてみる。

$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 13
Server version: 5.7.23

Copyright (c) 2000, 2018, 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> SET GLOBAL validate_password_length=8;
Query OK, 0 rows affected (0.00 sec)

mysql> SET GLOBAL validate_password_policy=LOW;
Query OK, 0 rows affected (0.00 sec)

mysql> ALTER USER root@localhost IDENTIFIED BY 'new password';
Query OK, 0 rows affected (0.00 sec)

文字コードを確認する。

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

設定ファイルに以下の2行を追記して再起動する。

/etc/my.cnf
[mysqld]
character-set-server=utf8

[client]
default-character-set=utf8
$ sudo /bin/systemctl restart mysqld.service

新しいユーザーを作成する。

mysql> GRANT ALL PRIVILEGES ON `app_production`.* TO `username`@localhost IDENTIFIED BY 'new password';

ログインできるか試してみる。

$ mysql -u username -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.23 MySQL Community Server (GPL)

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

おわり!

himatani
Vue / TypeScript / Node.js / Python / Ruby / Swift / Firebase / AWS
https://himatani.me
yahoo-japan-corp
Yahoo! JAPAN を運営しています。
https://www.yahoo.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした