前提・実現したいこと
EC2の本番環境でrails db:create RAILS_ENV=productionを入力し、データベースを作成しようとしています。
調べ物をして、パスワードが違うのが原因だと思って手探りでパスワードを設定する処理を行ったのですが、改善につながりません。
どこが問題なのか教えていただけると嬉しいです。
発生している問題・エラーメッセージ
IPアドレスとリポジトリの名前は匿名にしております。
$ rails db:create RAILS_ENV=production Access denied for user 'root'@'localhost' (using password: YES) Couldn't create 'リポジトリ名_production' database. Please check your configuration. rails aborted! Mysql2::Error::ConnectionError: Access denied for user 'root'@'localhost' (using password: YES) /var/www/リポジトリ名/bin/rails:9:in `<top (required)>' /var/www/リポジトリ名/bin/spring:15:in `<top (required)>' bin/rails:3:in `load' bin/rails:3:in `<main>' Tasks: TOP => db:create (See full trace by running task with --trace)
環境
$ mysqladmin --no-defaults -u root version mysqladmin Ver 9.0 Distrib 5.5.64-MariaDB, for Linux on x86_64 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Server version 5.5.64-MariaDB Protocol version 10 Connection Localhost via UNIX socket UNIX socket /var/lib/mysql/mysql.sock Uptime: 4 days 23 hours 40 min 58 sec MariaDB [(none)]> select user,host,plugin from mysql.user; +------+-----------+--------+ | user | host | plugin | +------+-----------+--------+ | root | localhost | | | root | 127.0.0.1 | | | root | ::1 | | +------+-----------+--------+ 3 rows in set (0.00 sec)
config.database.yml
1default: &default 2 adapter: mysql2 3 encoding: utf8 4 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> 5 username: root 6 password: <%= ENV['DATABASE_PASSWORD'] %> 7 socket: /tmp/mysql.sock 8 9production: 10 <<: *default 11 database: furima_28357_production 12 username: root 13 password: <%= ENV['DATABASE_PASSWORD'] %> 14 socket: /var/lib/mysql/mysql.sock
試したこと
mysqlのログインはパスワードを指定してうまくいく。
$ mysql -u root -pパスワード Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 52 Server version: 5.5.64-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
パスワードを設定してみます
MariaDB [(none)]> SET PASSWORD FOR -> 'root'@'localhost' = PASSWORD('パスワード名'); Query OK, 0 rows affected (0.00 sec)
匿名ユーザーで接続している可能性を考えて念のためFOR抜きでもやりました。
MariaDB [(none)]> SET PASSWORD = PASSWORD('パスワード名'); Query OK, 0 rows affected (0.00 sec)
補足情報(FW/ツールのバージョンなど)
参考URL
https://dev.mysql.com/doc/refman/5.6/ja/assigning-passwords.html
https://style.potepan.com/articles/18389.html
あなたの回答
tips
プレビュー