- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
未处理的拒绝错误:握手不活动超时。我运行应用程序并在连接到数据库期间收到错误以防获取数据。我删除了 node_modules 文件夹。通过 nvm 将 Node 版本从 4.4.7 更改为 6.10.0。再次安装 node_modules。试图扩大连接选项的超时时间。试图在不 promise 所有的情况下使用 mysql2。没有任何帮助。我读到了 DNS 地址与路由器的冲突(但是连接正在与 Node 4.4.7 一起工作)。我也知道以前的版本也有同样的问题,但我没有找到强有力且易于理解的答案,只有关于路由、CPU、错误配置连接的建议。
OS: Centos 7
node //Now using node v6.10.0 (npm v3.10.10) via nvm
mysql module: 2.13.0
mysql db : //some DNS name (not local), port : 3306
代码(lib/mysql/index.js)
var Promise = require("bluebird");
// The most popular mysql module
var mysql = require('mysql');
// Note that the library's classes are not properties of the main export
// so we require and promisifyAll them manually
Promise.promisifyAll(require("mysql/lib/Connection").prototype);
Promise.promisifyAll(require("mysql/lib/Pool").prototype);
var config = require(__base + '/config');
var connections = {};
Object.keys(config.mysql).forEach(function (name) {
var options = config.mysql[name];
new Connection(name, options || null);
});
/**
* @param name
* @param options
* host : options.host,
* port : options.port,
* user : options.user,
* password: options.password,
* database: options.database
*
* @constructor
*/
function Connection(name, options) {
this.name = name;
var connectionObj = options;
connectionObj.connectionLimit = 10;
this.pool = mysql.createPool(connectionObj);
this.runQuery = function (query) {
return this.pool.queryAsync(query);
};
connections[name] = this;
}
function setConnection(name , options ){
connections[name] = new Connection(name,options)
}
function getConnection( name, options ){
if( !connections[name]){
setConnection(name,options);
}
return connections[name];
}
exports.connections = connections;
exports.getConnection = getConnection;
Unhandled rejection Error: Handshake inactivity timeout
at Handshake.<anonymous>
(/home/User/code/application/node_modules/mysql/lib/protocol/Protocol.js:160:17)
at emitNone (events.js:86:13)
at Handshake.emit (events.js:185:7)
at Handshake._onTimeout (/home/User/code/application/node_modules/mysql/lib/protocol/sequences/Sequence.js:127:8)
at ontimeout (timers.js:365:14)
at tryOnTimeout (timers.js:237:5)
at Timer.listOnTimeout (timers.js:207:5)
--------------------
at Protocol._enqueue (/home/User/code/application/node_modules/mysql/lib/protocol/Protocol.js:141:48)
at Protocol.handshake (/home/User/code/application/node_modules/mysql/lib/protocol/Protocol.js:52:41)
at PoolConnection.connect (/home/User/code/application/node_modules/mysql/lib/Connection.js:130:18)
at Pool.getConnection (/home/User/code/application/node_modules/mysql/lib/Pool.js:48:16)
at Pool.query (/home/User/code/application/node_modules/mysql/lib/Pool.js:202:8)
at Pool.tryCatcher (/home/User/code/application/node_modules/bluebird/js/release/util.js:16:23)
at Pool.ret [as queryAsync] (eval at makeNodePromisifiedEval (/home/User/code/application/node_modules/bluebird/js/release/promisify.js:205:1), <anonymous>:14:23)
at Connection.__dirname.Connection.options.runQuery (/home/User/code/application/lib/mysql/index.js:50:26)
at TableName.runQuery (/home/User/code/application/models/mysql/abstract.js:51:34)
at TableName.proto.getAll (/home/User/code/application/models/mysql/abstract.js:60:17)
at new TableName (/home/User/code/application/models/mysql/table_name.js:11:33)
at Object.<anonymous> (/home/User/code/application/models/mysql/table_name.js:58:18)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
我试着像这里一样扩大超时:Error: Handshake inactivity timeout in Node.js MYSQL module .
我在这里阅读了有关 DNS 设置的信息:Error: Handshake inactivity timeout in Node.js v6.9.1 and MYSQL . (对于 Node 4.4.7 没有问题)。
最佳答案
应用程序在 IDE WebStorm v.11 中以 Debug模式运行并失败。我将 IDE 更新到更新版本 2016.3。问题消失了。
关于mysql - 握手不活动超时 : nodejs 6. 10.0 mysql pool.queryAsync,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42767357/
我按照问题答案的规定使用了 queryAsync(),它确实有效,但它向我的查询结果添加了大量额外的元数据,否则这是一个简单的查询。 这是我用来处理/执行查询并记录结果的内容: var retriev
我在 C# 中有这个任务,我想使用 dapper 在 MySql 中调用一个存储过程。 public async Task> GetTable() { using (MySql
我正在尝试测试我的存储库方法,它使用 QueryAsync() 并且它在一个事务中。所以我在模拟 IDbConnection 和 IDbTransaction。但是当我运行测试用例时它给出了一个错误
不幸的是,我们的数据库可以追溯到 90 年代。它的遗产是如此强大,以至于我们仍在使用 SP 来完成大部分的 CRUD 操作。然而,Dapper 似乎很适合我们,我们才刚刚开始使用它。 但是,我有点担心
为什么我不能在 Query 上正常使用 .select 时在 Query 上使用它? 例如,这里 .select 对我大喊大叫,告诉我它无法解析符号“select”: var result = awa
我正在使用 dapper 和 C#7 ValueTuples(已安装的 nuget)执行以下查询: await connection.QueryAsync( $@"SE
我正在使用异步等待构建nodejs api。所以我的 Controller 每个函数都是异步的,它通过模型接收 promise 。对于查询,我使用了sequelize包来与数据库交互。为了使用sequ
在这里使用 .net core api (c#) 和 dynamodb。 我的 dbmanager 类为: public class DbManager : DynamoDBContext, IDyn
使用此代码(有或没有“.ToList()”): public async Task> SelectDistinctGroupNames() { var db = new SQLiteAsync
我正在更新我的项目以使用 Azure.Data.Tables 12.6.1,但我不知道在哪里指定 Take 值来限制从查询返回的实体数。 换句话说,我想做这样的事情: var limit = 150;
我正在使用 Azure.Data.Tables 包和 TableClient.QueryAsync() 方法来获取查询结果。我希望结果将其用于分页。我在 https://learn.microsoft
我正在使用 Azure.Data.Tables 包和 TableClient.QueryAsync() 方法来获取查询结果。我希望结果将其用于分页。我在 https://learn.microsoft
我尝试使用以下代码,但它不起作用。 public void deleteRow(int index) { conn.QueryAsync("D
未处理的拒绝错误:握手不活动超时。我运行应用程序并在连接到数据库期间收到错误以防获取数据。我删除了 node_modules 文件夹。通过 nvm 将 Node 版本从 4.4.7 更改为 6.10.
我有一个执行检查并返回一行或非零返回值的存储过程: CREATE PROCEDURE dbo.ConditionalGet @ID INT AS BEGIN -- this is a
首先,我认为第一次只是一个条件,可以更清楚地看到这种阻塞。对于下一次,它仍会以某种方式稍微阻塞 UI,但不像不使用异步时那样明显。 我可以这么说,因为我可以看出使用 QueryAsync 之间的区别和
下面给出的是我用来从 Dynamodb 表中检索详细信息的方法。但是当我调用这个方法时,它最终抛出了一个异常“无法找到关键属性任命 ID 的属性”。这个特定表的主键是appointmentId,但我已
为什么在此方法上调用 .Result 会导致 TaskCanceledException: public Task> GetAsync() { using (var conn = new Sq
我正在运行以下查询,其中包含 Case 和 Account 之间的子 => 父关系 - 并在 SELECT 中包含 Account.Name: string query = "SELECT Case.
在使用 dapper 的 QueryAsync 方法时,使用 connection.OpenAsync() 和 connection.Open() 有什么区别。 异步: public async Ta
我是一名优秀的程序员,十分优秀!