无法连接到MySql数据库:错误104528000:用户'root'@'localhost'的访问被拒绝

问题描述

有很多与此类似的问题,但是没有一个问题解决了我的问题。

我以前在大学项目中使用过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,活动实例始终为红色。

解决方法

从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