質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

1098閲覧

AWS Access denied for user 'hoge'@'localhost' (using password: NO)

amby

総合スコア40

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Vim

VimとはUnix / Linux 系のOSに標準搭載されているターミナル上で動くテキストエディタです。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2020/09/14 12:43

実現したいことと起きていること

下記の記事を参考にAWSへのデプロイを試しています。
https://qiita.com/naoki_mochizuki/items/5a1757d222806cbe0cd1

ここの「MySQLの設定」の項目で「rake db:create RAILS_ENV=production」を試すと以下のエラーが出ます。
いろいろ試してあと少しな気もするのですが詰まってしまい、対処方法を教えていただきたいです。

Access

1Couldn't create 'portfolio_production' database. Please check your configuration. 2rake aborted! 3Mysql2::Error::ConnectionError: Access denied for user 'portfolio'@'localhost' (using password: NO) 4 5Tasks: TOP => db:create 6(See full trace by running task with --trace) 7コード

試したこと

調べた結果、パスワードが空欄になっていることが原因とのことでしたのでパスワードを設定しました。
参考にしたのは下記の記事です。
https://qiita.com/Kaisyou/items/17142ff2d080d565fedc

vim config/database.ymlで下記のように記入しています。

# MySQL. Versions 5.1.10 and up are supported. # # Install the MySQL driver # gem install mysql2 # # Ensure the MySQL gem is defined in your Gemfile # gem 'mysql2' # # And be sure to use new-style password hashing: # https://dev.mysql.com/doc/refman/5.7/en/password-hashing.html # default: &default adapter: mysql2 encoding: utf8 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: root password: taishiman1026 host: localhost development: <<: *default database: portfolio_development # Warning: The database defined as "test" will be erased and # re-generated from your development database when you run "rake". # Do not set this db to the same as development or production. test: <<: *default database: portfolio_test # As with config/secrets.yml, you never want to store sensitive information, # like your database password, in your source code. If your source code is # ever seen by anyone, they now have access to your database. # # Instead, provide the password as a unix environment variable when you boot # the app. Read http://guides.rubyonrails.org/configuring.html#configuring-a-database # for a full rundown on how to provide these environment variables in a # production deployment. # # On Heroku and other platform providers, you may have a full connection URL # available as an environment variable. For example: # # DATABASE_URL="mysql2://myuser:mypass@localhost/somedatabase" # # You can use this database configuration with: # # production: # url: <%= ENV['DATABASE_URL'] %> # production: <<: *default database: portfolio_production username: portfolio password: <%= ENV['PORTFOLIO_DATABASE_PASSWORD'] %>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

<%= ENV['PORTFOLIO_DATABASE_PASSWORD'] %>
がnilなのではないでしょうか
環境変数PORTFOLIO_DATABASE_PASSWORDには,DBに設定したパスワードが入っていますか?

投稿2020/09/14 14:33

kmdkuk

総合スコア141

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

amby

2020/09/14 23:28

ご回答ありがとうございます。ご指摘いただいた通り環境変数を設定してみました。 ただまだ同じエラーが出てしまいます。<%= ENV['PORTFOLIO_DATABASE_PASSWORD'] %>の部分をパスワード直書きにもしてみたのですがエラーは消えませんでした。 別に原因があるのでしょうか。。。 ※環境変数確認しました。 [taishi@ip-10-0-0-202 portfolio]$ printenv XDG_SESSION_ID=1037 HOSTNAME=ip-10-0-0-202.ap-northeast-1.compute.internal TERM=xterm-256color SHELL=/bin/bash HISTSIZE=1000 SSH_CLIENT=27.143.149.112 58218 22 OLDPWD=/var/www/rails SSH_TTY=/dev/pts/0 PORTFOLIO_DATABASE_PASSWORD=taishiman1026★←設定を確認 USER=taishi
kmdkuk

2020/09/15 01:06

シェルの方で環境変数が有効になっていてもrailsで読み出せていない可能性もあるかもしれないので,rails consoleでnilになっていないか確かめる. というのと,設定されているのであれば,Mysqlの方にportfolioというuserがいて,適切なパスワードで作成されていて,適切な権限がふられているか確認してみてはどうでしょうか?
amby

2020/09/15 12:51

ありがとうございます。 rails cで確認したところnilになっていたので環境変数を設定しました。 またMysqlの方ですが、「mysql -u portfolio -p」で接続しようとすると「ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)」というエラーが出ました。 権限の書き換えをしようと思い「sudo chown [portfolio] /tmp/mysql.sock」としてみたのですが、結果「chown: ユーザ指定が不正: `[taishi]'」と出てしまいました。 これはMysql側にportfolioというuserがそもそもいない、ということなのでしょうか。
kmdkuk

2020/09/15 14:03

chownはLinuxのユーザとしての所有権の書き換えです.LinuxのユーザとMysqlのユーザはまた別物です. そもそも/var/lib/mysql/mysql.sockのソケットファイルがない場合は,Mysqlを再起動してみてください.
amby

2020/09/16 12:36

ありがとうございます。 Mysqlを再起動してみたのですが「ERROR 1045 (28000): Access denied for user 'portfolio'@'localhost' (using password: YES)」のエラーになってしまいました。 また、Mysqlには初期設定のパスワードがあることを知ったので調べたら「pDGTUm95L」だったのでdatabase.ymlもENV['PORTFOLIO_DATABASE_PASSWORD'] も全部これに書き換えています。 mysql -u portfolio -pの際に入力を求められたパスワードもこのパスワードを入力したのですが。。。 Mysqlをアンインストールしてやり直したほうがいいのでしょうか。。。
kmdkuk

2020/09/16 16:38

mysqlのユーザにprotfolioが存在しないのでは? その初期設定のパスワードはmysqlのrootユーザのパスワードかと思います. rootでログインして,ユーザの確認,作成,権限を与えるまでやらないと行けないような気がします.
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問