- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
当我使用node mysql时,在12:00到2:00之间出现一个错误,表明TCP连接被服务器关闭。这是完整的消息:
Error: Connection lost: The server closed the connection.
at Protocol.end (/opt/node-v0.10.20-linux-x64/IM/node_modules/mysql/lib/protocol/Protocol.js:73:13)
at Socket.onend (stream.js:79:10)
at Socket.EventEmitter.emit (events.js:117:20)
at _stream_readable.js:920:16
at process._tickCallback (node.js:415:13)
有solution .但是,我通过这种方式尝试后,问题也出现了。现在我不知道该怎么办。有人遇到这个问题吗?
下面是我写的方法:
var handleKFDisconnect = function() {
kfdb.on('error', function(err) {
if (!err.fatal) {
return;
}
if (err.code !== 'PROTOCOL_CONNECTION_LOST') {
console.log("PROTOCOL_CONNECTION_LOST");
throw err;
}
log.error("The database is error:" + err.stack);
kfdb = mysql.createConnection(kf_config);
console.log("kfid");
console.log(kfdb);
handleKFDisconnect();
});
};
handleKFDisconnect();
最佳答案
尝试使用this code处理服务器断开连接:
var db_config = {
host: 'localhost',
user: 'root',
password: '',
database: 'example'
};
var connection;
function handleDisconnect() {
connection = mysql.createConnection(db_config); // Recreate the connection, since
// the old one cannot be reused.
connection.connect(function(err) { // The server is either down
if(err) { // or restarting (takes a while sometimes).
console.log('error when connecting to db:', err);
setTimeout(handleDisconnect, 2000); // We introduce a delay before attempting to reconnect,
} // to avoid a hot loop, and to allow our node script to
}); // process asynchronous requests in the meantime.
// If you're also serving http, display a 503 error.
connection.on('error', function(err) {
console.log('db error', err);
if(err.code === 'PROTOCOL_CONNECTION_LOST') { // Connection to the MySQL server is usually
handleDisconnect(); // lost due to either server restart, or a
} else { // connnection idle timeout (the wait_timeout
throw err; // server variable configures this)
}
});
}
handleDisconnect();
在您的代码中,我缺少 connection = mysql.createConnection(db_config);
关于mysql - nodejs mysql错误: Connection lost The server closed the connection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20210522/
我只是设法与 svn 陷入了一个奇怪的境地。就工作副本而言,我的一个文件似乎“丢失”了。当我查看服务器或在另一个位置重新 check out 包含文件夹时,文件在那里,但在这个特定的工作副本中,它似乎
我使用的是 Delphi 2007。有时链接到组件的属性会丢失。这通常是操作属性和查找数据集。我有几次进行了一些紧急错误修复并向客户发送了一个版本,因此产生了一些灾难性的结果:-)任何人都知道一种方法
我已经安装了 RabbitMQ Bundle。现在这是我想要做的: Controller :创建Redis-List,将消息推送到客户端,然后将消息发送到队列中,因此可以异步执行较重的后台任务。 但我
我在文件中有一个矩阵,例如: 3 1 2 3 4 5 6 7 8 -9 其中第一行表示方阵阶数。我正在使用以下代码读取文件并将其存储到 vector 中(为了简单起见,我删除了所有 if 检查): #
说 Pokemon 是一个类。考虑这个片段: Pokemon Eve(4,3); //call to constructor, creating first object on the stack E
这真的很奇怪。我正在使用 SQL Server Express 2005,并具有以下连接字符串(在 DotNetNuke web.config 中): Data Source=ELECTROMORPH
我有一个包含两个项目的 C# 解决方案:一个服务(主项目)和一个记录器。该服务使用来自记录器的类。我在服务项目中添加了对记录器项目的引用。在设计时,自动完成工作正常:记录器的类是可见的,我使用的引用有
我最近将valgrind与glib(与gobject)一起使用,效果不是很好。 我在命令行中添加了G_SLICE=always-malloc G_DEBUG=gc-friendly, 但是valgri
从 Delphi 2010 升级后,我丢失了 Delphi XE 中的大部分库路径, 现在,即使是一些简单的应用程序也将无法编译。 有什么方法可以恢复库路径中丢失的目录条目吗? 编辑:我发现了一个令人
我最终使用 Eng. 的方法在 JFileChooser 的 JList 和 JComboBoxes 中自定义了选择颜色。福阿德建议here public void customizeJFileCho
我尝试使用返回字符串的 StreamReader 类的 ReadToEnd() 方法读取 JPG 文件。 但出于某种原因,当我将此字符串写入文件时,它无法打开。 将数据读入字符串时是否丢失了什么? 最
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
基本上,我的问题是:是否有某种方法可以“恢复”因向上转换为非泛型基类型而丢失的类型参数,例如 Object .这是我的意思的一个例子: 假设我收到了一个 Object l来自图书馆,我知道 l是一个
我无法让 UIView 通过多次触摸来响应我想要的方式。基本上某些 UITouches 在 UITouchPhaseBegan 中,但永远不会进入 UITouchPhaseEnded 或 UITouc
我面临一个设计问题,我希望只有一个 JMS 生产者向两个消费者发送消息。只有两台服务器,生产者将开始生成消息,这些消息将对两个消费者进行负载平衡(通过循环)。 在假设一台服务器发生故障的情况下,我确实
我正在尝试创建一些程序以便正确地为测试做好准备,这很快就会完成。但实际上,经过几天对这些代码的研究,我无法找到 valgrind 报告的内存泄漏的实际位置。 我尝试释放几乎所有内部和外部指针。我尝
我想使用 Requests 包连接到 Web 服务的流 API。假设我使用以下代码发送请求、接收响应并在响应行到达时对其进行迭代: import requests r = requests.get('
我有一个类,它被另一个类的方法动态扩展。这些方法中还有一些额外的静态信息,例如。例如: class A # @b = B.new # in initialize def a puts
我想对一个变量进行位移并将移出的位存储在 bool 值中。 类似于: unsigned int i = 1; bool b = rshift(&i); // i now equals 0 and b
我有一个超过 18GB 数据的 9000 万条记录的 MYISAM 表,测试表明它是分区的候选者。 原始架构: CREATE TABLE `email_tracker` ( `id` int(11
我是一名优秀的程序员,十分优秀!