Как исправить 'Доступ запрещен для пользователя \' root \ '@ \' localhost \ ', номер ошибки 1045 - PullRequest
0 голосов
/ 27 апреля 2019

Я подключаю базу данных MySQL к своему приложению NODEJS.при каждом запуске сервера возникает ошибка. Доступ запрещен для пользователя 'root' @ 'localhost' с использованием пароля YES, номер ошибки 1045

Я обнаружил, что многие разработчики задавали один и тот же вопрос,но ни у одного из них не было одинакового ответа, и я сделал все, что нашел.Я попытался разорвать соединение, перезапустить phpMyAdmin, удалить пользователей и базы данных с одинаковыми именами хостов.Версии node, express, mysql, mysqljs являются последними версиями.И около 6 часов искал код, пытающийся найти любую синтаксическую ошибку в js или sql.

const http = require('http');
const express = require('express');

const path = require('path');

const mysql = require('mysql');
const port = process.env.port || 3000;
const db = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: '123456',
    database: 'nodemysql'
    //port: port
});

db.connect((err) => {
    if (err) {
        console.log('error when connecting to db:', err);
        throw err;
    }
    console.log('MySql is Connected');
});

const app = express();

app.get('/profile', (req, res) => {

    console.log(result);
    res.sendFile(path.join(__dirname + '/profile.html'));
});

app.get('/createdb', (req, res) => {
    let sql = 'CREATE DATABASE nodemysql';
    db.query(sql, (err, result) => {
        if (err) {
            throw err;
        }
    })

});
//app.use(express.json());

app.listen(port, () => console.log(`listening on port ${port}...`));

, а package.json выглядит так:

  {
   "name": "community",
   "version": "1.0.0",
   "description": "",
     "main": "app.js",
     "scripts": {
       "test": "echo \"Error: no test specified\" && exit 1"
     },
     "author": "Omar AbdelFattah",
     "license": "ISC",
     "dependencies": {
       "express": "^4.16.4",
       "mysql": "^2.17.1",
       "mysqljs": "0.0.2-security"
     }
   }

Ожидаемый результатесли я запустил 'nodemon app.js' или 'node app' или что-то еще, в терминале сервер запустится, а затем я использую одну из двух конечных точек, чтобы открыть отображение файла HTML или подключиться к базе данных.

Фактические результаты: возникает ошибка: «Ошибка: ER_ACCESS_DENIED_ERROR: доступ запрещен для пользователя« root »@« localhost »(с использованием пароля: ДА)« НО сервер работает!и выполняется функция app.listen ().

1 Ответ

0 голосов
/ 27 апреля 2019

Ошибка # 1045 либо выводится, когда пользователь не имеет привилегий для базы данных (маловероятно, если вы являетесь пользователем root и localhost), либо когда пароль неверен. Событие listen будет вызвано в любом случае, при структурировании этого потока сбой соединения с базой данных только выдает ошибку, но не останавливает сервер.
Вы можете попытаться сбросить свой пароль root (если возможно, из терминала), чтобы быть уверенным, прежде чем искать более глубокие проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...