连接mysql时报ER_NOT_SUPPORTED_AUTH_MODE错误

193 阅读1分钟

崩溃了呀!xdm!

我用node连接mysql连不上呀!怎么肥事?

先来看下我的代码吧!

const mysql = require('mysql')

const db = mysql.createConnection({
  host: 'localhost',
  port: 3306,
  user: 'root',
  password: '123456',
  database: 'my_db_01'
})

db.connect()

db.query('SELECT 1', (err, results) => {
  if(err) return console.log(err.message)
  console.log(results)
})

经过查资料发现,是因为Node现在不支持mysql8.0.0版本以上的加密方式

那么我们就修改mysql的权限吧...

我使用的是mac,应该也和linux通用的吧。

好了,不多bb...

解决方法

  1. 打开命令行,输入这串代码/usr/local/MySQL/bin/mysql -u root -p

  2. 然后输入你mysql的登录密码,进入mysql的环境

  3. 然后输入alter user 'root'@'localhost' identified with mysql_native_password by 'mysql的密码'; 注意:一定要加分号

  4. 最后输入这个命令flush privileges;,回车!大哥,搞定!

结语

image.png

成功解决!