
首先我是 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',
});
伺服器.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
出現這種情況的原因是您無法使用以下命令連接到 MySQLroot
再使用該帳戶連線到 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;