2012-08-25 30 views
16

Me parece que no puede acceder a mi tutorial entorno de desarrollo de base de datos:ERROR 1049 (42000): la base de datos Desconocido

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

puedo acceder a la base de datos sin bien la parte 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 

No está seguro de lo que da como concedí todos los accesos:

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) 

¿Alguien tiene una idea de qué intentarlo? ¡Gracias! Además, el lado nota- ¿Es raro que tengo múltiples usuarios root ?:

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

Editar: para aquellos asking- creé el blog de la base de datos con el comando CREATE DATABASE en MySQL. Aquí están mis bases de datos activas:

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

¿de hecho creaste la base de datos? 'mysql -u blog -p' inicia sesión en mysql pero no selecciona la base de datos. – DGM

+0

yup, ahí está en mySQL - 'blog', e intentabas' blog_development' en rieles (que es el mejor nombre para usar y el sugerido por el ejemplo database.yml o desarrollo). –

Respuesta

15

blog_development no existe

Esto se puede ver en sql por el mensaje 0 rows affected

crearlo en MySQL con

mysql> create database blog_development 

Sin embargo, como Está utilizando raíles a los que debería acostumbrarse usando

$ rake db:create 

para hacer la misma tarea. Se utilizará la configuración de archivos database.yml, que debe incluir algo como:

development: 
    adapter: mysql2 
    database: blog_development 
    pool: 5 

también familiarizarse con:

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

Creé el blog de la base de datos usando el comando mysql> CREATE DATABASE. En el pasado, esto ha creado un entorno de desarrollo para mí? A menos que esté equivocado – aalab002

+0

Sí, eso funcionará pero existe la posibilidad de que el comando sql y los rieles database.yml no coincidan. Vengo de un fondo de SQL antes de los rieles e inicialmente hice la ruta de los comandos de SQL, pero a medida que aprendes los rieles encontrarás que usar comandos de rieles para crear el DB es el camino a seguir. –

+0

lo tengo. Gracias Michael! – aalab002

0

Su un error común que se produce cuando se intenta acceder a una base de datos que doesn existo Por lo tanto crear la base de datos utilizando

CREATE DATABASE blog_development; 

El error común occours cuando hemos dejado caer la base de datos utilizando

DROP DATABASE blog_development; 

y luego tratar de acceder a la base de datos.

3

Solución muy simple. Simplemente cambie el nombre de su base de datos y configure su nuevo nombre de base de datos en su proyecto.

El problema es que cuando importas tu base de datos, obtienes algún error y la base de datos se corrompe. Los archivos de registro tendrán el nombre de la base de datos corrupta. Puede cambiar el nombre de su base de datos fácilmente usando phpmyadmin para mysql.

phpmyadmin -> operations -> Rename database to 
Cuestiones relacionadas