##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.
〜〜
##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をの設定を反映させる。