2016-02-06 41 views
0

我一直在寻找一种使用mysql连接字符串来创建池而不是使用凭据的方式,这是因为我可以使用来自azure应用程序设置的连接字符串,但迄今为止找不到解决方案。使用连接字符串nodejs创建池mysql

我可以创建一个池是这样的:

pool = mysql.createPool({ 
    connectionLimit: 20, 
    host: HOST, 
    user: USER, 
    password: PASSWORD, 
    database: DATABASE, 
    debug: false 
}); 

但我想达到的目标是这样的:

pool = mysql.createPool(process.env.MYSQLCONNSTR_connectionstring); 

我使用的模块felixge/node-mysql

回答

1

我与湛蓝的MySQL数据库这是在格式提供的连接字符串尝试:

Database=DATABASE;Data Source=HOST;User Id=USERID;Password=PASSWORD 

但事实证明,这种格式不支持,它当我使用这个工作:

mysql://USERID:[email protected]/DATABASE 
0

根据node-mysql的来源,很遗憾,无法用连接字符串创建池。

编号:PoolConfig.js

我想你应该解析连接字符串,也有它的每一个必要的信息。

例如:

let connectionString = 'mysql://user:[email protected]/db?debug=true&charset=BIG5_CHINESE_CI&timezone=-0700'; 

// remove mysql:// 
connectionString = connectionString.substring(8, connectionString.length) 

// Get user and password 
let userAndPassw = connectionString.split('@')[0]; 
let user = userAndPassw.split(':')[0]; 
let password = userAndPassw.split(':')[1]; 

// Host 
let host = connectionString.split('@')[1]; 
host = host.split('?')[0]; 
+0

谢谢你的建议,我也想这样做,但事实证明可以使用连接字符串创建一个池,但格式与我尝试过的格式不同。 – war1oc