#mysql #node.js #database #database-connection
#mysql #node.js #База данных #подключение к базе данных
Вопрос:
Я пытаюсь запросить таблицу из node.js. Ниже приведен мой код.Но я получаю ошибку типа «сервер закрыл соединение». Не уверен, какую ошибку я делаю.
var mysql = require('mysql');
var con = mysql.createConnection({
host: "10.90.103.4",
user: "someuser",
password: "********",
database: "db",
port: 1521
});
console.log("---------------------------");
console.log(con);
console.log("---------------------------");
con.connect(function(err) {
if (err) throw err;
con.query("select * from CLE_EXCEPTIONRECORD where CORRELATIONID='983b2f58-e0eb-49cb-b76c-9b8107de3edc'", function (err, result, fields) {
if (err) throw err;
console.log(result);
});
});
Но я получаю приведенную ниже ошибку. Пожалуйста, предложите мне получить ответ об успешном завершении.
Connection {
domain: null,
_events: {},
_eventsCount: 0,
_maxListeners: undefined,
config:
ConnectionConfig {
host: '10.90.103.4',
port: 1521,
localAddress: undefined,
socketPath: undefined,
user: 'THREE_SDEV_EXP_USER',
password: 'PA55WORD',
database: 'CITA',
connectTimeout: 10000,
insecureAuth: false,
supportBigNumbers: false,
bigNumberStrings: false,
dateStrings: false,
debug: undefined,
trace: true,
stringifyObjects: false,
timezone: 'local',
flags: '',
queryFormat: undefined,
pool: undefined,
ssl: false,
multipleStatements: false,
typeCast: true,
maxPacketSize: 0,
charsetNumber: 33,
clientFlags: 455631 },
_socket: undefined,
_protocol:
Protocol {
domain: null,
_events: {},
_eventsCount: 0,
_maxListeners: undefined,
readable: true,
writable: true,
_config:
ConnectionConfig {
host: '10.90.103.4',
port: 1521,
localAddress: undefined,
socketPath: undefined,
user: 'THREE_SDEV_EXP_USER',
password: 'PA55WORD',
database: 'CITA',
connectTimeout: 10000,
insecureAuth: false,
supportBigNumbers: false,
bigNumberStrings: false,
dateStrings: false,
debug: undefined,
trace: true,
stringifyObjects: false,
timezone: 'local',
flags: '',
queryFormat: undefined,
pool: undefined,
ssl: false,
multipleStatements: false,
typeCast: true,
maxPacketSize: 0,
charsetNumber: 33,
clientFlags: 455631 },
_connection: [Circular],
_callback: null,
_fatalError: null,
_quitSequence: null,
_handshake: false,
_handshaked: false,
_ended: false,
_destroyed: false,
_queue: [],
_handshakeInitializationPacket: null,
_parser:
Parser {
_supportBigNumbers: false,
_buffer: <Buffer >,
_nextBuffers: [Object],
_longPacketBuffers: [Object],
_offset: 0,
_packetEnd: null,
_packetHeader: null,
_packetOffset: null,
_onError: [Function: bound handleParserError],
_onPacket: [Function: bound ],
_nextPacketNumber: 0,
_encoding: 'utf-8',
_paused: false } },
_connectCalled: false,
state: 'disconnected',
threadId: null }
---------------------------
F:johnynode_from_homenode_modulesmysqllibprotocolProtocol.js:112
var err = new Error('Connection lost: The server closed the connection.');
^
Error: Connection lost: The server closed the connection.
at Protocol.end (F:johnynode_from_homenode_modulesmysqllibprotocolPro
tocol.js:112:13)
at Socket.<anonymous> (F:johnynode_from_homenode_modulesmysqllibConnec
tion.js:97:28)
at Socket.<anonymous> (F:johnynode_from_homenode_modulesmysqllibConnec
tion.js:502:10)
at emitNone (events.js:111:20)
at Socket.emit (events.js:208:7)
at endReadableNT (_stream_readable.js:1064:12)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickCallback (internal/process/next_tick.js:180:9)
at Protocol._enqueue (F:johnynode_from_homenode_modulesmysqllibprotoco
lProtocol.js:144:48)
at Protocol.handshake (F:johnynode_from_homenode_modulesmysqllibprotoc
olProtocol.js:51:23)
at Connection.connect (F:johnynode_from_homenode_modulesmysqllibConnec
tion.js:118:18)
at Object.<anonymous> (F:johnynode_from_hometestselenium_old.js:16:5)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Function.Module.runMain (module.js:693:10)
F:johnynode_from_home>
Ниже приведена моя фактическая таблица. Когда я запрашиваю из putty, я могу получить ответ.
Комментарии:
1. Вы выдаете ошибку в двух местах вашего кода. Вы уверены, что ошибка возникает из-за запроса, а не при подключении?
2. ошибка возникает при подключении. На самом деле ошибка в подключении
3. Вероятно, это означает, что соединение не может быть установлено, потому что сервер закрыл соединение при подключении. Проверьте, можете ли вы связаться с ним с помощью telnet на указанном порту и действительно ли он отвечает протоколом mysql (какая-то тарабарщина, заканчивающаяся «mysql_native_password»)
4. Telnet работал нормально (telnet 10.90.103.4 1521). Я даже запрашивал у putty. Также создано новое исходящее правило для этого порта в брандмауэре. Все еще возникает та же проблема. Это из-за версии узла или чего-то еще?