2012-08-25 20 views
16

io non riesco a effettuare il login al mio tutorial ambiente di sviluppo di database:ERRORE 1049 (42000): banca dati Unknown

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

posso accedere al database di multa senza 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 

Non sei sicuro di ciò che dà come ho concesso tutto l'accesso:

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) 

Qualcuno ha idea di cosa cercare? Grazie! Inoltre, lato nota- è forse più utenti strano che ho radice ?:

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

Edit: per coloro asking- ho creato il blog database con il comando CREATE DATABASE in MySql. Qui sono i miei database attivi:

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

hai effettivamente creato il database? 'mysql -u blog -p' accede a mysql ma non seleziona il database. – DGM

+0

sì, eccolo in mySQL - 'blog', e stavi cercando' blog_development' in rails (che è il nome migliore da usare e quello suggerito dall'esempio database.yml o sviluppo). –

risposta

15

blog_development non esiste

Si può vedere questo in SQL dal messaggio 0 rows affected

crearlo in MySQL con

mysql> create database blog_development 

Tuttavia come stai usando le rotaie che dovresti abituare a usare

$ rake db:create 

per eseguire la stessa operazione. Userà le impostazioni dei file database.yml, che dovrebbe includere qualcosa come:

development: 
    adapter: mysql2 
    database: blog_development 
    pool: 5 

anche diventare familiarità con:

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

Ho creato il blog del database utilizzando il comando mysql> CREATE DATABASE. In passato questo ha creato per me un ambiente di sviluppo? A meno che non mi sbagli? – aalab002

+0

Sì, funzionerà ma c'è la possibilità che il comando sql e il database di database.yml non corrispondano. Sono venuto da uno sfondo SQL prima di rotaie e inizialmente ho fatto il comando di comandi SQL ma mentre impari i binari troverai i comandi di rotaie per creare il db è la strada da percorrere. –

+0

capito. Grazie Michele! – aalab002

0

E 'un errore comune che si verifica quando si tenta di accedere a un database che doesn esiste Quindi creare il database utilizzando

CREATE DATABASE blog_development; 

L'errore comunemente occours quando abbiamo lasciato cadere il database utilizzando

DROP DATABASE blog_development; 

e quindi provare a accedere al database.

3

Soluzione molto semplice. Basta rinominare il database e configurare il nuovo nome del database nel progetto.

Il problema è quando si importa il database, si sono verificati errori e quindi il database sarà danneggiato. I file di registro avranno il nome del database danneggiato. Puoi rinominare facilmente il tuo database usando phpmyadmin per mysql.

phpmyadmin -> operations -> Rename database to