无法使用主目录中的.my.cnf从node.js客户端连接到mysql

atmip9wb  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(429)

在我的主目录的.my.cnf文件中有以下内容。事实上,我将有更多的其他数据库也与不同的后缀'客户端'。但是,现在,为了测试,我有一个简单的.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文件中的密码进行连接。

ndasle7k

ndasle7k1#

等待。你刚刚分别写了.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'
});

资料来源:https://github.com/mysqljs/mysql/issues/1676#issuecomment-289247509
节点mysql-https://www.npmjs.com/package/mysql

相关问题