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

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

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

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

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Ruby on Rails

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

Q&A

1回答

1122閲覧

環境変数を使ってパスワードを設定してもrailsサーバがうまく起動しない理由を教えてください。

Marchan4

総合スコア15

Ruby

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

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

Ruby on Rails

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

0グッド

0クリップ

投稿2021/05/01 11:16

rubyのバージョンは3.0.0、 mysqlのバージョンは5.7、 mysql2のバージョンは0.5.3、
bundlerバージョンは2.2.3、 railsのバージョンは5.0.7.2です。

現在message-boardというアプリを作成中です。

フォルダの形式は以下のようになっております。

message-board_folder └message-board └.ruby-version

まず、

$ rails s

というコマンドでrailsを起動しようとしたところ、以下のエラーの画像が表示されました。

イメージ説明

Mysql2::Error::ConnectionError Access denied for user 'root'@localhost'(using password: NO)

というエラーが表示されておるため、

database.yml
環境変数を使ったパスワードを追加いたしました。

default: &default adapter: mysql2 encoding: utf8 pool: 5 username: root password: <%= ENV['DB_PASSWORD'] %> socket: /tmp/mysql.sock

それからターミナルに以下のコマンドを実行いたしました。

$ export DB_PASSWORD=自分のMySQLバージョン5.7のログインパスワード $ rails s

上記のコマンド実行結果は以下の画像の通りになりました。

イメージ説明

上記の画像のFramework Traceの項目にある

mysql2 (0.5.3) lib/mysql2/client.rb:90:in `connect' mysql2 (0.5.3) lib/mysql2/client.rb:90:in `initialize' activerecord (5.0.7.2) lib/active_record/connection_adapters/mysql2_adapter.rb:25:in `new' activerecord (5.0.7.2) lib/active_record/connection_adapters/mysql2_adapter.rb:25:in `mysql2_connection' (...) puma (3.12.6) lib/puma/thread_pool.rb:135:in `block in spawn_thread'

と言ったファイルは

message-board_folder └message-board └.ruby-version

message-boardフォルダには存在しなかったため、エラーを解決することができませんでした。

環境変数を使ってパスワードを設定してもrailsサーバがうまく起動しない理由を教えてください。

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

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

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

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

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

guest

回答1

0

エラーメッセージから見て、環境変数が渡っていないため には見えません。
問題を切り分けましょう。
database.ymlに直書きすれば起動しますか?

投稿2021/05/01 13:45

winterboum

総合スコア23401

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

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

Marchan4

2021/05/02 03:09

database.ymlにパスワードを直書きしたら、 ActiveRecord::NoDatabaseError Unknown database 'message-board_development' というエラーが出ましたが、 $ rails db:create というコマンドを実行して message-board_developmentというデータベースを作れば、 “Yay! You’re on Rails!” が表示されることになっておりますが、 database.ymlへのパスワードの直書きはセキュリティー上危険であるため、 今回は学習も兼ねてパスワードの直書きではなく環境変数を使ったパスワードを記述した上でrailsサーバーを正常に起動させたいのですが。
winterboum

2021/05/02 10:29

無論最後は環境変数を使いましょう。 環境変数が渡っていないための障害か、渡っていてもなお起きる障害かを切り分けるのをまず行ってください。 上のコメントは 直書きしたらつながった、と解釈してよいですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問