- 投稿日:2020-06-19T12:15:30+09:00
【Amazon Linux2】MySQL5.7の初期化
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/mysqlmysqlの初期化
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 -u root -pでログインしようとするとエラーが発生。
$ mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)MySQLの初期化後、初期パスワードが発行されるので確認する。
# 初期パスワードを確認 $ 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-develDBをcreateし、migrateを実行。
rake db:create RAILS_ENV=production rake db:migrate RAILS_ENV=production
- 投稿日:2020-06-19T12:15:30+09:00
【Amazon Linux2】MySQL5.7の初期化、環境構築
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/mysqlMySQL5.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 --versionmysqlの初期化
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 mysql2DBをcreateし、migrateを実行。
rake db:create RAILS_ENV=production rake db:migrate RAILS_ENV=productionrootで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をの設定を反映させる。
- 投稿日:2020-06-19T04:18:06+09:00
SQLSTATE[HY000] [1045] Access denied for user エラー
http://localhost:8888にアクセスし、MySQKのデータをlaravelのDBクラスを使って表示するときにでたエラー
実際に出たエラー
SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES) (SQL: select * from information_schema.tables where table_schema = laravel-project and table_name = migrations and table_type = 'BASE TABLE')
エラーを出してしまった理由
ターミナル からアクセスしていたmysqlのsocketが必要なのにphpmyadminのsocketを.envのDB_SOCKETに記述してしまっていた。
解決した方法
mysqlコマンドの\sでサーバー情報を表示してsocketを.envのDB_SOCKETにコピーし、
ターミナルに戻り、(一度設定した.envを再編集した場合は)キャッシュをクリアにする
$ php artisan config:cache
参考サイト
MySQLサーバー情報取得
https://phpjavascriptroom.com/?t=mysql&p=info