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

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

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

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

RubyGems

RubyGemsはRubyによるプログラミングのためのパッケージマネジメントツールです。ユーザはこれを使用することで、Rubyライブラリのダウンロードやアップデートや、依存関係の自動解決が可能になります。

Ruby on Rails

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

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

Q&A

解決済

1回答

412閲覧

MySQLのdatabase:(DB名)の元の値を知りたい

KENT1004

総合スコア77

MySQL

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

RubyGems

RubyGemsはRubyによるプログラミングのためのパッケージマネジメントツールです。ユーザはこれを使用することで、Rubyライブラリのダウンロードやアップデートや、依存関係の自動解決が可能になります。

Ruby on Rails

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

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

0グッド

0クリップ

投稿2022/04/07 17:20

ec2上でmysqlを起動しようとしていますがdatabase:の部分の名前が異なるというエラーが発生します。

[ec2-user@ip-XX myapp]$ rails db:create Unknown MySQL server host 'db' (2) Couldn't create 'webapp_development' database. Please check your configuration. rails aborted! Mysql2::Error::ConnectionError: Unknown MySQL server host 'db' (2) /var/www/myapp/bin/rails:9:in `<top (required)>' /var/www/myapp/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)

尚以下のコマンドだとエラーは発生しませんが起動できていません

[ec2-user@ip-XX myapp]$ rails db:create RAILS_ENV=production

原因としてはdatabase.ymlのdatabase:のDB名が正しくないことからだと思いますが。そもそもproductionの部分はMySQLインストール時には記述していなかったのでDB名が元々何だったのかわかりません。(development,testはインストール時に記述済)
DB名を調べる手順はありますでしょうか?
またこれらの対策はありますでしょうか?

ご教授宜しくお願いします。

database.yml

1default: &default 2 adapter: mysql2 3 encoding: utf8 4 pool: <%= ENV.fetch("RAILES_MAX_THREADS") { 5 } %> 5 username: <%= ENV.fetch("MYSQL_USER") { 'root' } %> 6 password: <%= ENV.fetch("MYSQL_PASSWORD") { 'password' } %> 7 host: db 8 9production: 10 <<: *default 11 database: myapp_development 12 13development: 14 <<: *default 15 database: webapp_development 16 17test: 18 <<: *default 19 database: webapp_test

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

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

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

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

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

mineralwater

2022/04/07 18:13

間違っているかもしれませんが、host: loaclhostにするとどうなりますか?
KENT1004

2022/04/08 04:05

Access denied for user 'root'@'localhost' (using password: YES) Couldn't create 'webapp_development' database. Please check your configuration. rails aborted! Mysql2::Error::ConnectionError: Access denied for user 'root'@'localhost' (using password: YES) /var/www/myapp/bin/rails:9:in `<top (required)>' /var/www/myapp/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) このようにエラー文が変わりました。ec2上でmysql自体にログインはできたのでパスワード関連のエラーというよりユーザの権限を持ってないことによるエラーなのでしょうか?
KENT1004

2022/04/08 04:28

参考までにユーザーの権限はこのようになっています。 mysql> show grants for root@localhost; +---------------------------------------------------------------------+ | Grants for root@localhost | +---------------------------------------------------------------------+ | GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION | | GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION | +---------------------------------------------------------------------+ mysql> SELECT User,Host FROM mysql.user; +------+-----------+ | User | Host | +------+-----------+ | root | 127.0.0.1 | | root | ::1 | | root | localhost |
mineralwater

2022/04/08 04:52 編集

申し訳ないのですが、残念ながらそのエラーの解決策は分かりません。 ただ、最初に質問されていた問題は解決できたという事でよろしいでしょうか?
KENT1004

2022/04/08 06:04

はい、この問題に関しては解決されました。ありがとうございました。
guest

回答1

0

ベストアンサー

hostのdblocalhostに変更する

yaml:database.yml

1default: &default 2 adapter: mysql2 3 encoding: utf8 4 pool: <%= ENV.fetch("RAILES_MAX_THREADS") { 5 } %> 5 username: <%= ENV.fetch("MYSQL_USER") { 'root' } %> 6 password: <%= ENV.fetch("MYSQL_PASSWORD") { 'password' } %> 7 host: localhost #db -> localhostに変更 8 9production: 10 <<: *default 11 database: myapp_development 12 13development: 14 <<: *default 15 database: webapp_development 16 17test: 18 <<: *default 19 database: webapp_test

説明

Unknown MySQL server host 'db' (2)Unknown MySQL server host 'db' (2)
(google翻訳) 不明なMySQLサーバーホスト'db'(2)

このエラーメッセージからdatabase.ymlファイルのhost: dbがおかしいという事が分かります。

ec2上でmysqlを起動しよう

この質問文の内容からrailsアプリとmysqlが同じサーバー(インスタンス)にあると推測できるため、host: localhostに変更する事で正しく接続されます。

投稿2022/04/08 05:16

mineralwater

総合スコア289

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問