Ошибка: подключите 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;