Dica: Depois que o artigo for escrito, o índice pode ser gerado automaticamente. Como gerá-lo pode consultar o documento de ajuda à direita
Diretório de artigos
1. Como o nodejs se conecta ao mysql?
npm install mysql --save
Criar código de conexão db.js
//导入mysql连接包
const mysql = require('mysql');
let dbconfig ={
host: 'db_host',
user: 'db_user',
password: 'db_pass',
database: 'db_name',
debug: true
};
function handleDisconnection() {
db = mysql.createConnection(dbconfig);
db.connect(function (err) {
if (err) {
console.log('db connect error:' + err.message + "2秒后重连");
setTimeout(handleDisconnection, 2000);
}
});
db.on('error', function (err) {
console.log(err);
if (err.code === 'PROTOCOL_CONNECTION_LOST') {
console.log('db error执行重连:' + err.message);
handleDisconnection();
} else {
throw err;
}
});
db.querySync = function(sql) {
return new Promise(function(resolve, reject) {
db.query(sql, function(error, results, fields) {
if(error) reject(error);
else resolve({
results, fields})
})
})
};
return db;
}
//创建连接conn
exports.db = handleDisconnection();
2. Erro: Não é possível enfileirar a consulta após um erro fatal quando o Nodejs se conecta ao mysql
1. Parâmetros de configuração originais
let dbconfig ={
host: 'db_host',
user: 'db_user',
password: 'db_pass',
database: 'db_name',
debug: true
};
Basta adicionar o parâmetro useConnectionPooling: true
2. Novos parâmetros de configuração
let dbconfig ={
host: 'db_host',
user: 'db_user',
password: 'db_pass',
database: 'db_name',
useConnectionPooling: true,
debug: true
};