我已经在Heroku中设置了一个MySQL数据库,并通过MySQL Workbench成功连接到它。
我一直在使用felixge的node-mysql
插件尝试从我的应用程序(用coffeescript编写)连接到它,设置连接如下:
db = mysql.createConnection({
host: 'server-name.cleardb.com/heroku_randomletters?reconnect=true'
user: 'mysn'
password: 'mypwd'
})
不幸的是,我在控制台得到一个Error: getaddrinfo ENOTFOUND
和应用程序崩溃。我知道错误来自这段代码,因为删除它可以正常工作。初步的谷歌搜索暗示这个错误是因为db URL是错误的,但它是从我放入MySQL工作台的复制粘贴的,工作正常。我已经通过js2coffee手动运行了这段代码,它被正确地编译了,所以它不是CS搞砸了对象或任何东西。
尽管所有信息完全相同,但我通过将信息作为字符串而不是对象传递,使其成功连接并运行查询。
db = mysql.createConnection('mysql://mysn:mypwd@server-name.cleardb.com/heroku_randomletters?reconnect=true')
我没有将此标记为答案,因为我仍然想知道为什么作为对象传递信息失败
如果你还没有解决这个问题:
移除host
中的heroku_randomletters
和reconnect=true
。将heroku_randomletters
设置为数据库属性