9
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Amazon Linux2】MySQL5.7の初期化、環境構築

Last updated at Posted at 2020-06-19

##MySQLの削除

#停止
sudo service mysqld stop

#停止したか確認
sudo service mysqld status

#インストール済みのMySQLの確認
 パッケージ管理コマンドのrpmでインストール済みのmysqlを探す。
 オプションのqがパッケージ情報の表示と検索、aがインストールされているパッケージを一覧表示する。
 それを、grepで絞り込んでいる。
rpm -qa | grep -i mysql
mysql-community-common-5.7.30-1.el7.x86_64
mysql57-community-release-el7-11.noarch
mysql-community-libs-5.7.30-1.el7.x86_64
mysql-community-server-5.7.30-1.el7.x86_64
mysql-community-client-5.7.30-1.el7.x86_64

#MySQLの削除
sudo yum remove mysql-community-common-5.7.30-1.el7.x86_64
sudo yum remove mysql57-community-release-el7-11.noarch
sudo yum remove mysql-community-libs-5.7.30-1.el7.x86_64
sudo yum remove mysql-community-server-5.7.30-1.el7.x86_64
sudo yum remove mysql-community-client-5.7.30-1.el7.x86_64

#または、一気に削除
sudo yum remove mysql

#データベースの削除
sudo rm -rf /var/lib/mysql

##MySQL5.7のインストール
◯参考サイト
https://qiita.com/2no553/items/952dbb8df9a228195189

#mariadbがインストールされているか確認
$ yum list installed | grep mariadb
mariadb-libs.x86_64                   1:5.5.56-2.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

##mysqlの初期化

sudo mysqld --initialize --user=mysql
[ERROR] --initialize specified but the data directory has files in it. Aborting.
[ERROR] Aborting

しかしエラーが発生。
https://hirose31.hatenablog.jp/entry/20161004/1475582156
こちらの記事を参考にし、エラーを解消。MySQLの初期化が完了。

##MySQLの初期化後、初期パスワードが発行されるので確認する。

次にmysql -u root -pでログインしようとするとエラーが発生。

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

rootパスワードを再設定する。
※この時設定したrootパスワードが、DB_PASSWORDになる。

# 初期パスワードを確認
$ sudo cat /var/log/mysqld.log | grep 'temporary password'  # 初期パスワードを確認

# rootユーザのパスワードなどを変更するため、次のコマンドで変更を行っていく。
$ mysql_secure_installation

# 新しく設定したパスワードでログインが完了。
$ mysql -u root -p
Enter password: # 設定したパスワード
Welcome to the MySQL monitor.  Commands end with ; or \g.
〜〜

◯参考サイト
https://qiita.com/ksugawara61/items/336ffab798e05cae4afc#4-mysql%E3%81%AB%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%A7%E3%81%8D%E3%82%8B%E3%81%8B%E7%A2%BA%E8%AA%8D

##mysql2のgemをアンインストールし、再度インストールした。

gem uninstall mysql2
gem install mysql2

インストールの際エラーが発生したが、「mysql-devel」をインストールすると無事通った。

sudo yum install mysql-devel
gem install mysql2

##DBをcreateし、migrateを実行。

rake db:create RAILS_ENV=production
rake db:migrate RAILS_ENV=production

##rootでMySQLにログイン後、ユーザーを作成 → 権限の付与。

# rootユーザーでログイン
mysql -u root -p

# MySQLを選択
mysql> use mysql;

# ユーザーの作成
mysql> CREATE USER test@localhost IDENTIFIED BY ‘password’;

# ユーザーが追加されているか確認
mysql> SELECT  host, user FROM mysql.user;

# 新規ユーザーへ権限の付与
mysql> GRANT ALL PRIVILEGES ON *.* TO test@localhost;

# 権限の付与を反映させる
mysql> FLUSH PRIVILEGES;

# 権限が付与されたか確認する
mysql> show grants for test@localhost;

# rootユーザーをログアウト後、作成したユーザーでログインできるか確認する
mysql> quit

sudo service mysqld stop
sudo service mysqld start # MySQLの再起動

mysql -u test -p
Enter password: 新規ユーザー作成時に入力したパスワード
Welcome to the MySQL monitor.  Commands end with ; or \g.
〜〜

最後にunicornを再起動させ、MySQLをの設定を反映させる。

9
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?