1. ホーム
  2. マイスル

[解決済み] エラー 1049 (42000)。不明なデータベース

2022-03-04 18:28:15

質問

チュートリアルのデータベース開発環境にログインできないようです。

Ayman$ mysql -u blog -p blog_development
Enter password: 
ERROR 1049 (42000): Unknown database 'blog_development'

blog_developmentの部分がなくてもデータベースに問題なくログインできるのですが。

Ayman$ mysql -u blog -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1858

すべてのアクセスを許可したため、何が起こるかわかりません。

mysql> GRANT ALL PRIVILEGES ON blog_development.*
    -> TO 'blog'@'localhost'
    -> IDENTIFIED BY 'newpassword';
Query OK, 0 rows affected (0.01 sec)

mysql> SHOW GRANTS FOR 'blog'@'localhost'
    -> ;
+----------------------------------------------------------------------------------------- --------------------+
 | Grants for blog@localhost                                                                                        |
 +----------------------------------------------------------------------------------------- --------------------+
| GRANT USAGE ON *.* TO 'blog'@'localhost' IDENTIFIED BY PASSWORD    '*FE4F2D624C07AAEBB979DA5C980D0250C37D8F63' |
| GRANT ALL PRIVILEGES ON `blog`.* TO 'blog'@'localhost'                                                        |
| GRANT ALL PRIVILEGES ON `blog_development`.* TO 'blog'@'localhost'                                           |
+----------------------------------------------------------------------------------------- --------------------+
3 rows in set (0.00 sec)

どなたか、何を試したらいいのか、手がかりをお持ちの方はいらっしゃいませんか?ありがとうございます。あと、余談ですが、rootユーザが複数いるのは変でしょうか?

mysql> select User from mysql.user;
+------+
| User |
+------+
| root |
| root |
|      |
| root |
|      |
| blog |
| root |
+------+
7 rows in set (0.00 sec)

編集:質問者のために-私はMySqlのCREATE DATABASEコマンドでデータベースブログを作成しました。以下は私のアクティブなデータベースです。

mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+  
| information_schema |
| blog               |
| mysql              |
| performance_schema |
| test               |
+--------------------+ 
5 rows in set (0.00 sec)

解決方法は?

blog_developmentが存在しない

これをSQLで確認するには 0 rows affected メッセージ

でmysqlに作成します。

mysql> create database blog_development

しかし、rails を使っているのだから、このような使い方に慣れる必要があります。

$ rake db:create

を使えば、同じ作業をすることができます。 database.ymlファイルの設定を使用し、その設定には以下のようなものが含まれているはずです。

development:
  adapter: mysql2
  database: blog_development
  pool: 5

も熟知してください。

$ rake db:migrate  # Run the database migration
$ rake db:seed     # Run thew seeds file create statements
$ rake db:drop     # Drop the database