Access denied for user 'root'@'localhost' (using password: YES)

在mac中通过终端连接mysql连接成功
通过图形工具Navicat 连接成功

通过nodejs连接mysql失败

代码:

function query(sql, params, callback) {
  var op = {
    host: '127.0.0.1',
    port: '3306',
    user: 'root',
    password: '111111',
    database: 'anjiecc'
  };
  var client = mysql.createConnection(op);
  client.query(sql, function(err, data) {
    if (err) {
      console.log(err);
    } else {
      //调用dao回调函数
      callback(data);
    }
  });
  client.end();
}

连接报错
Access denied for user 'root'@'localhost' (using password: YES)
code: 'ER_ACCESS_DENIED_ERROR',
errno: 1045,
sqlState: '28000'

求大神指导指导,谢谢!

阅读 12.1k
4 个回答

grant all privileges on . to 'root'@'localhost' identified by '你的密码' with grant option;

flush privileges;

所用账号没权限登录数据库吧..
试下在localhost127.0.0.1都分别授权吧

结合大佬的答案 grant all privileges on . to 'root'@'localhost' identified by '你的密码' with grant option; 我写一下操作步骤

node代码

import mysql = require('mysql');
const devConfig = {
    host: '127.0.0.1',
    user: 'root',
    password: 'root',
    database: 'agency_dev',
    port: 33061,
}
const sql = mysql.createConnection(devConfig)
sql.connect()
sql.query(
    'SELECT table_name FROM information_schema.TABLES WHERE table_name = "image"',
    (err, res) => {
        console.log(res,'rersssss')
        if(res.length)return
        sql.query(
            `CREATE TABLE \`image\` (
                \`id\` INT NOT NULL AUTO_INCREMENT,
                \`file_key\` VARCHAR(45) NOT NULL,
                \`file_name\` VARCHAR(45) NOT NULL,
                PRIMARY KEY (\`id\`)
            )
            `
        )
        console.log(res,err)
    }
)

操作步骤

  • 前提条件 docker环境及mysql环境已经搭建好了

clipboard.png

  • 点击这里

clipboard.png

  • 再点击这里

clipboard.png

  • 输入这句话(如果你是默认配置的话)grant all PRIVILEGES on *.* TO 'root'@'localhost' IDENTIFIED by 'root'
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题