
첫째로 저는 Windows 프로그래머였고 최근에 Linux로 전환했습니다(우분투 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',
});
서버.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
그 이유는 root
더 이상 해당 계정으로 MySQL에 연결할 수 없기 때문입니다. 이 규칙은 몇 년 전부터 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;