Ошибка: getaddrinfo ENOTFOUND при попытке подключения к удаленной базе данных с правильными учетными данными - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь реализовать экспресс в моем приложении для доступа к таблицам базы данных, и для этого я наткнулся на этот пакет .Я реализовал папку server (которая запускается вместе со скриптом yarn start через concurrently и nodemon) с index.js следующим образом:

const express = require('express');
const mysql = require('mysql');

const app = express();

const con = mysql.createConnection({
  host: 'xxxxx',
  user: 'xxxxx',
  password: 'xxxxx',
  database: 'xxxxx',
});

con.connect( err => {
  if (err) {
    console.log(err);
  }
})

app.get('/api/fetch-list', (req, res) => {
  // code to fetch
});

const PORT = 3001;// process.env.PORT || 3000;

app.listen(PORT, () => {
  console.log(`App server now listening on port ${PORT}`);
});

Затем маршрут / путь / api/ fetch-list вызывается в этом компоненте:

import React from 'react';
import axios from 'axios';

function renderTable() {
  axios.get(`${process.env.PUBLIC_URL}/api/fetch-list`).then(res => {
    console.log(res.data);
  });
}

export function component() {
  return (
    <div>
      {renderTable()}
    </div>
  );
}

И этот компонент отображается после перехода на http: localhost: 3000 / table.Поэтому, запустив проект и перейдя по этому адресу, я получаю следующую ошибку в консоли терминала:

{ Error: getaddrinfo ENOTFOUND xxxxx xxxxx:3306
    at errnoException (dns.js:50:10)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:92:26)
    --------------------
    at Protocol._enqueue (/home/gfcf14/Desktop/greendream-redesign/node_modules/mysql/lib/protocol/Protocol.js:144:48)
    at Protocol.handshake (/home/gfcf14/Desktop/greendream-redesign/node_modules/mysql/lib/protocol/Protocol.js:51:23)
    at Connection.connect (/home/gfcf14/Desktop/greendream-redesign/node_modules/mysql/lib/Connection.js:119:18)
    at Object.<anonymous> (/home/gfcf14/Desktop/greendream-redesign/src/server/index.js:27: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)
  code: 'ENOTFOUND',
  errno: 'ENOTFOUND',
  syscall: 'getaddrinfo',
  hostname: 'xxxxx',
  host: 'xxxxx',
  port: 3306,
  fatal: true }

Я не уверен, почему это может происходить.Я знаю, что учетные данные, которые я использую, являются правильными, учитывая, что это работает на моем сайте со старым php-кодом.На мгновение я подумал, что это может быть связано с тем, где находится моя база данных, так как она размещена на 1 & 1 (ionos), и они не предоставляют мне выделенный сервер.Поэтому я изменил учетные данные на пространство с промежуточным хостом, где у меня есть другая база данных (учетные данные, которые я все еще использую), и вместо этого я получаю эту ошибку:

{ Error: ER_ACCESS_DENIED_ERROR: Access denied for user 'xxxxx'@'myipaddress' (using password: YES)
    at Handshake.Sequence._packetToError (/home/gfcf14/Desktop/greendream-redesign/node_modules/mysql/lib/protocol/sequences/Sequence.js:47:14)
    at Handshake.ErrorPacket (/home/gfcf14/Desktop/greendream-redesign/node_modules/mysql/lib/protocol/sequences/Handshake.js:123:18)
    at Protocol._parsePacket (/home/gfcf14/Desktop/greendream-redesign/node_modules/mysql/lib/protocol/Protocol.js:291:23)
    at Parser._parsePacket (/home/gfcf14/Desktop/greendream-redesign/node_modules/mysql/lib/protocol/Parser.js:433:10)
    at Parser.write (/home/gfcf14/Desktop/greendream-redesign/node_modules/mysql/lib/protocol/Parser.js:43:10)
    at Protocol.write (/home/gfcf14/Desktop/greendream-redesign/node_modules/mysql/lib/protocol/Protocol.js:38:16)
    at Socket.<anonymous> (/home/gfcf14/Desktop/greendream-redesign/node_modules/mysql/lib/Connection.js:91:28)
    at Socket.<anonymous> (/home/gfcf14/Desktop/greendream-redesign/node_modules/mysql/lib/Connection.js:525:10)
    at emitOne (events.js:116:13)
    at Socket.emit (events.js:211:7)
    --------------------
    at Protocol._enqueue (/home/gfcf14/Desktop/greendream-redesign/node_modules/mysql/lib/protocol/Protocol.js:144:48)
    at Protocol.handshake (/home/gfcf14/Desktop/greendream-redesign/node_modules/mysql/lib/protocol/Protocol.js:51:23)
    at Connection.connect (/home/gfcf14/Desktop/greendream-redesign/node_modules/mysql/lib/Connection.js:119:18)
    at Object.<anonymous> (/home/gfcf14/Desktop/greendream-redesign/src/server/index.js:27: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)
  code: 'ER_ACCESS_DENIED_ERROR',
  errno: 1045,
  sqlMessage: 'Access denied for user \'xxxxx\'@\'myipaddress\' (using password: YES)',
  sqlState: '28000',
  fatal: true }

Так что она также не работает для этой.Возможно, мне придется проверить разрешения для этого сайта (которые на первый взгляд кажутся READ & WRITE), но как мне установить соединение для работы первой базы данных?Пожалуйста, дайте мне знать, если вы увидите что-то, что я, возможно, пропустил

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...