with values query into ejemplos ejemplo mysql node.js sequelize.js

values - insert with query mysql



Revisar la conexión mysql en secuela (4)

Tengo un programa muy simple en el que creo una instancia de Sequelize y luego realizo una consulta sin formato en una base de datos mysql. El caso es que cuando MySql está en funcionamiento y no hay ningún problema, puedo realizar la consulta sin problemas. Pero cuando MySql no se está ejecutando, la consulta no emite ningún error hasta que se agote el tiempo de espera de la consulta y luego emite un error ETIMEOUT. Pero eso no es realmente lo que está pasando. Espero que la consulta emita un error ENOTFOUND o algo así si mysql no se está ejecutando, por lo que puedo administrar el error y realizar diferentes acciones si Mysql se ha caído o si Mysql está muy ocupado y tiene un tiempo de respuesta muy grande. ¿Qué debo hacer para comprobar si Mysql está funcionando correctamente sin tener que esperar la excepción de tiempo de espera?

sequelize = new Sequelize(db_name, db_user, db_pass, opts); sequelize.query(''SELECT * FROM some_table'').success(function(result) { console.log(result); }).error(function(err) { console.log(err); });


A partir de la última versión de Sequelize (es decir, 3.3.2 ), la authenticate se puede usar para verificar la conexión:

var sequelize = new Sequelize("db", "user", "pass"); sequelize.authenticate().then(function(errors) { console.log(errors) });

authenticate simplemente ejecuta la consulta de SELECT 1+1 AS result para verificar la conexión de la base de datos.

ACTUALIZACIÓN :

Los errores de la API más reciente deben manejarse en catch :

sequelize .authenticate() .then(() => { console.log(''Connection has been established successfully.''); }) .catch(err => { console.error(''Unable to connect to the database:'', err); });


No verás errores, como errores de autenticación de contraseña, en .then .

De la documentación de secuela here :

Puede usar la función .authenticate () de esta manera para probar la conexión.

sequelize .authenticate() .then(function(err) { console.log(''Connection has been established successfully.''); }) .catch(function (err) { console.log(''Unable to connect to the database:'', err); });


Utilizo el siguiente código para esperar a que arranque el motor db:

function sleep(ms) { return new Promise(function(resolve) { setTimeout(resolve, ms); }); } for (;;) { try { await db.authenticate(); break; } catch(ex) { await sleep(1000); } }


Verifique la variable del sistema "wait_timeout" si se ha restablecido a algún valor trivial