2012-08-25 13 views
16

私は私のチュートリアルデータベース開発環境にログインできないようです。ERROR 1049(42000):不明なデータベース

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 [email protected]                      | 
+----------------------------------------------------------------------------------------- --------------------+ 
| 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) 

誰が何をしようとする手掛かりを持っていますか?ありがとう!また、サイドノート・それ奇妙な私が持っている複数のルートユーザ?:

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

編集がある:私は、MySQLのCREATE DATABASEコマンドを使用して、データベースのブログを作成しasking-人のため。ここに私のアクティブなデータベースは、以下のとおりです。blog_developmentは

存在しない

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

実際にデータベースを作成しましたか? 'mysql -u blog -p'はmysqlにログインしますが、データベースは選択しません。 – DGM

+0

ええ、それはmySQLの 'blog'にあり、レールで' blog_development'を試していました(これはサンプルdatabase.ymlや開発で提案されたより良い名前です)。 –

答えて

15

あなたはしかしとして

mysql> create database blog_development 

でMySQLで作成0 rows affectedメッセージ

によって、SQLでこれを見ることができますあなたは使い慣れたはずのレールを使用しています

$ rake db:create 

同じタスクを実行する。我々はdoesnのデータベースにアクセスしようとすると、たまたま

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

mysql> CREATE DATABASEコマンドを使用してデータベースブログを作成しました。これまで私は開発環境を作り出していましたか?私が間違っていない限り? – aalab002

+0

はい、これは動作しますが、sqlコマンドとrailsのdatabase.ymlが一致しない可能性があります。私はレールの前にSQLのバックグラウンドから来て、私は最初にSQLコマンドを実行しましたが、レールを習得すると、railsのコマンドを使用してdbを作成する方法があります。 –

+0

だらけ。ありがとうマイケル! – aalab002

0

その一般的なエラー:

development: 
    adapter: mysql2 
    database: blog_development 
    pool: 5 

はまたに精通:それはのようなものを含めるべきである、あなたのdatabase.ymlファイルの設定を使用します。存在しない。だから、

CREATE DATABASE blog_development; 

を使用してデータベースを作成するエラーは、一般的に、我々は

DROP DATABASE blog_development; 

を使用してデータベースを落としたときoccoursして、データベースにアクセスしてみてください。

3

非常に簡単な解決策です。 データベースの名前を変更し、プロジェクト内で新しいデータベース名を設定するだけです。

問題は、データベースをインポートしたときにエラーが発生し、データベースが破損することです。ログファイルには、データベース名が破損しています。 mysqlのphpmyadminを使用してデータベースの名前を簡単に変更できます。

phpmyadmin -> operations -> Rename database to