2012-08-25 28 views
16

tôi dường như không thể đăng nhập vào hướng dẫn môi trường phát triển cơ sở dữ liệu của tôi:ERROR 1049 (42000): Không rõ cơ sở dữ liệu

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

tôi có thể đăng nhập vào cơ sở dữ liệu tốt mà không cần phần 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 

Không chắc chắn những gì được cung cấp khi tôi cấp tất cả quyền truy cập:

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) 

Mọi người đều có đầu mối để thử? Cảm ơn! Ngoài ra, bên cạnh Lưu ý- là nó lạ Tôi có nhiều người dùng gốc ?:

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

Edit: cho những asking- Tôi tạo ra blog cơ sở dữ liệu với lệnh CREATE DATABASE trong MySql. Dưới đây là cơ sở dữ liệu hoạt động của tôi:

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

bạn có thực sự tạo cơ sở dữ liệu không? 'mysql -u blog -p' đăng nhập vào mysql nhưng không chọn cơ sở dữ liệu. – DGM

+0

yup, có trong mySQL - 'blog', và bạn đang thử' blog_development' trong đường ray (đó là tên tốt hơn để sử dụng và cái được gợi ý bởi cơ sở dữ liệu mẫu hoặc tệp phát triển). –

Trả lời

15

blog_development không tồn tại

Bạn có thể thấy điều này trong sql bằng thông điệp 0 rows affected

tạo ra nó trong mysql với

mysql> create database blog_development 

Tuy nhiên như bạn đang sử dụng đường ray bạn nên quen với việc sử dụng

$ rake db:create 

để thực hiện tác vụ tương tự. Nó sẽ sử dụng cài đặt tập tin database.yml của bạn, mà nên bao gồm một cái gì đó như:

development: 
    adapter: mysql2 
    database: blog_development 
    pool: 5 

Cũng trở nên quen thuộc với:

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

Tôi đã tạo blog cơ sở dữ liệu bằng cách sử dụng lệnh mysql> CREATE DATABASE. Trong quá khứ điều này đã tạo ra một môi trường phát triển cho tôi? Trừ khi tôi nhầm? – aalab002

+0

Có, điều đó sẽ làm việc nhưng có khả năng của lệnh sql và cơ sở dữ liệu đường ray.yml không khớp. Tôi đến từ một nền SQL trước khi đường ray và ban đầu tôi đã thực hiện các câu lệnh SQL nhưng khi bạn tìm hiểu các đường ray bạn sẽ tìm thấy bằng cách sử dụng các lệnh rails để tạo db là cách để đi. –

+0

. Cảm ơn Michael! – aalab002

0

nó một lỗi phổ biến mà sẽ xảy ra khi chúng ta cố gắng truy cập vào một cơ sở dữ liệu mà doesn không tồn tại. Vì vậy, tạo ra cơ sở dữ liệu sử dụng

CREATE DATABASE blog_development; 

Các lỗi thường occours khi chúng tôi đã bỏ cơ sở dữ liệu sử dụng

DROP DATABASE blog_development; 

và sau đó cố gắng truy cập vào cơ sở dữ liệu.

3

Giải pháp rất đơn giản. Chỉ cần đổi tên cơ sở dữ liệu của bạn và cấu hình tên cơ sở dữ liệu mới trong dự án của bạn.

Vấn đề là khi bạn nhập cơ sở dữ liệu, bạn gặp bất kỳ lỗi nào và cơ sở dữ liệu sẽ bị hỏng. Các tệp nhật ký sẽ có tên cơ sở dữ liệu bị hỏng. Bạn có thể đổi tên cơ sở dữ liệu của mình một cách dễ dàng bằng cách sử dụng phpmyadmin cho mysql.

phpmyadmin -> operations -> Rename database to 
Các vấn đề liên quan