Не удается подключиться к базе данных MySQL: ОШИБКА 1045 (28000): доступ запрещен для пользователя ‘root’ @’localhost’

#mysql #node.js

#mysql #node.js

Вопрос:

Есть довольно много вопросов, подобных этому, но ни один из них не решил мою проблему.

Я использовал MySQL раньше для проектов колледжа, поэтому я думаю, что, возможно, старые отключают любые новые, но я не помню их пароли и не могу их удалить.

Я много раз пытался изменить переменную env PATH, ничего не работает. В настоящее время: PATH=/Library/Frameworks/Python.framework/Versions/3.7/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/opt/local/bin:/opt/local/sbin:/usr/local/mysql/bin/

Я пробовал mysql -u root также бесчисленное количество раз. Код выглядит следующим образом:

 var mysql = require('mysql');

var con = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: ""
});

con.connect(function(err) {
    if (err) throw err;
    console.log("Connected!");
    con.query("CREATE DATABASE ishopDB", function (err, result) {
      if (err) throw err;
      console.log("Database created");
    });
  });
  

Я загрузил MySQL, и активный экземпляр всегда красный.

Ответ №1:

Начиная с MySQL 5.7, при первой установке больше нет пустого пароля для root. Итак, если ваш код ранее выполнялся на другой установке MySQL, и вы только что установили 5.7 (или выше) на пустой компьютер, это объясняет вашу проблему.

При установке MySQL установка может отличаться в зависимости от ОС: macOS, Windows и Red Hat / CentOS сгенерируют для вас пароль, в то время как Debian попросит вас его предоставить. Смотрите также здесь, где он будет отображать / хранить пароль:https://dev.mysql.com/doc/refman/8.0/en/default-privileges.html