Ошибка: подключите ECONNREFUSED 127.0.0.1:3306

Сначала я был программистом для Windows, а недавно перешел на Linux (дистрибутивubuntu 18.04) . В Windows мой код работал нормально, но в Linux он начал показывать ошибку.Error: connect ECONNREFUSED 127.0.0.1:3306

мой код подключения:

import { createConnection } from 'mysql';

export default createConnection({
host: 'localhost',
user: 'root',
password: '',
database: 'rent_compair',
});

server.js:

import express from 'express';
import cors from 'cors';
import admin from './routes/admin';
import db from './config/mysql';

const app = express();

db.connect((err) => {
if (err) throw err;

console.log('Db Connected!');
});

app.use(cors());
app.use(express.json());

app.use('/', admin);
app.listen(process.env.PORT || 5000, console.log('Server Connected!'));

xampp запущен с привилегиями sudo:оснастка сервера xampp

1 ответ

Причина этого в том, что вы не можете подключиться к MySQL с rootсчет больше. Это правило было изменено и введено в действие в MySQL несколько лет назад. Хотя можно обновить конфигурацию, чтобы разрешить это, это настоятельно не рекомендуется даже для сред разработки .

Вместо этого, если вам нужно, чтобы приложение имело полный контроль над базой данных, вы можете создать учетную запись и предоставить ей полный контроль следующим образом:

      CREATE USER 'app_name'@'localhost' IDENTIFIED WITH mysql_native_password BY 'superSecretPassword!123';
GRANT ALL ON `database`.* TO 'app_name'@'localhost';

Если вы хотите, чтобы приложение имело еще больший контроль, вы можете разрешить ему доступ ко всему, включая возможность создавать новые учетные записи, например:

      GRANT ALL ON *.* TO 'app_name'@'localhost' WITH GRANT OPTION;
Другие вопросы по тегам