
Primeiramente eu era um programador de Windows e recentemente mudei para Linux (Ubuntu 18.04distribuição). No Windows meu código estava funcionando bem, mas no Linux começou a mostrar o erro.Error: connect ECONNREFUSED 127.0.0.1:3306
meu código de conexão:
import { createConnection } from 'mysql';
export default createConnection({
host: 'localhost',
user: 'root',
password: '',
database: 'rent_compair',
});
servidor.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 começou com privilégios sudo: snap do servidor xampp
Responder1
A razão para isso é que você não pode root
mais se conectar ao MySQL com a conta. Esta regra foi alterada — e aplicada — no MySQL há alguns anos. Embora seja possível atualizar a configuração para permitir isso, é fortemente desencorajadomesmo para ambientes de desenvolvimento.
Em vez disso, se você precisar que o aplicativo tenha controle total sobre um banco de dados, você pode criar uma conta e conceder controle total a ela desta forma:
CREATE USER 'app_name'@'localhost' IDENTIFIED WITH mysql_native_password BY 'superSecretPassword!123';
GRANT ALL ON `database`.* TO 'app_name'@'localhost';
Caso queira que o aplicativo tenha ainda mais controle, você pode permitir-lhe acesso a tudo, inclusive a possibilidade de criar novas contas, como esta:
GRANT ALL ON *.* TO 'app_name'@'localhost' WITH GRANT OPTION;