我的主目录中的 .my.cnf文件中有以下内容。实际上,对于其他数据库,我也会有更多带有“ client”后缀的条目。但是,到目前为止,要测试,我有一个简单的.my.cnf文件,如下所示:
[client]
database=db1
user=user1
password=user123
host=localhost
在我的Nodejs程序中,我使用以下连接参数:
var dbConn = {
user: 'user1',
database: 'db1'
};
我希望它能够连接,因为密码在.my.cnf中。它没有,给出以下错误:
code: 'ER_ACCESS_DENIED_ERROR',
errno: 1045,
sqlMessage: 'Access denied for user \'user1\'@\'localhost\' (using password: NO)',
sqlState: '28000',
如果我将密码放入连接对象dbConn中,它将起作用。如果我在未指定密码的情况下运行mysql命令行,则可以使用.my.cnf文件中的密码进行连接。
答案 0 :(得分:2)
等等。您只是单独编写了.cnf文件。这行不通。 NodeJS不会自动将其拾取。您需要将其与mysql连接器一起使用。例如:
var ini = require('node-ini');
var mysql= require('mysql');
var config = ini.parseSync('/path/to/your/.my.cnf');
mysql.createPool({
user: config.user,
password: config.password,
database: 'db1'
});