2013-10-11 34 views
0

我有一個項目,它使用npm包mysql,Sequelize和redis。使用Sequelize連接數據庫時ER_BAD_DB_ERROR

下得好:

app.use(express.session({ 
    store: new RedisStore({ 
    host: 'localhost', 
    port: 6379, 
    db: 2, 
    pass: 'RedisPASS' 
    }), 
    secret: 'secret' // changed this value of course 
})); 

然後:

Sequelize.connection = new Sequelize('test_ddb', 
    'root', 'root', { logging: false }); 

會拋出以下錯誤:

Error: ER_BAD_DB_ERROR: Unknown database 'test_ddb' 

我試了幾件事情,開始我還以爲Sequelize沒有連接到MAMP的mysql,但是我的系統的mysql,但我已經安裝了所有的符號鏈接。像這樣:

/var/mysql/mysql.sock -> /Applications/MAMP/tmp/mysql/mysql.sock 

我甚至在這裏改成了:

/usr/local/mysql/bin/mysql -> /Applications/MAMP/Library/bin/mysql 

在終端MySQL命令也利用毫安數據庫。

回答

0

你確定MySQL正在運行?你能用MySQL命令行客戶端連接到它嗎?

+0

是的命令行客戶端工作,我可以連接到數據庫與mysql -u root -p test_ddb – Pepijn

+0

@Pepijn它可能是Sequelize(或者說,底層的MySQL驅動程序)需要使用TCP連接到MySQL,而不是使用Unix域套接字。檢查MySQL服務器是否配置爲接受TCP連接。 – robertklep

0

你可以嘗試初始化Sequelize的慣用方式:

var sequelize = new Sequelize('test_ddb', 'root', 'root') 
0

這個錯誤通常是由於如果在第一時間沒有數據庫。

CREATE DATABASE在你運行Sequelize之前在mysql中。