nodes 操作MySQL 踩坑记录

使用nodejs链接MySQL

先安装,用淘宝镜像

npm i mysql --registry=https://registry.npm.taobao.org

然后代码中

const mysql = require('mysql')

// 创建连接对象
const con = mysql.createConnection({
    host:'localhost',
    user:'root',
    password:'password',
    port:3306,
    database:'myblog',
    insecureAuth : true
})

// 开始连接

con.connect()

// 执行sql语句
const sql = "select * from users;"
con.query(sql, (err, result)=>{
    if(err){
        console.log(err)
        return
    }
    console.log(result)
})
// 关闭连接
con.end()

然后控制台执行

node index.js

报错了。。
Client does not support authentication protocol requested by server; consider upgrading MySQL client

nodes 操作MySQL 踩坑记录

这个问题的原因应该没有权限,解决方法呢,是修改加密规则
进入的MySQL中操作
Mac怎么进入MySQL呢?,执行以下

/usr/local/mysql/bin/mysql -u root -p
回车
输入数据库root账户的密码
进入到MySQL模式

然后执行下面的操作,如图

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES;

nodes 操作MySQL 踩坑记录

以为这回可以正常使用了,结果又报错了。
Access denied for user 'root'@'localhost' (using password: YES)

nodes 操作MySQL 踩坑记录
浏览器搜索了一下为什么会这样
大家的解释如下:
1)mysql的服务器停止

2)用户的端口号或者IP导致

3)mysql的配置文件错误----my.ini等文件

4)root用户的密码错误
然后去反思自己曾经的操作。。。
发现:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
这一步操作,我把自己的密码更改了/(ㄒoㄒ)/~~
隧使用新密码,修改后,执行,成功!

nodes 操作MySQL 踩坑记录

相关推荐