mysql的使用及其中问题解决,其他问题请留言
首先呢是在nodejs环境下安装npm包mysql
npm i mysql
//或者
yarn add mysql
新建db.js文件引入mysql并创建连接
var mysql = require('mysql');
//创建数据池
//推荐使用这种写法,如果每次都是用createConnect来连接那么每次还需要进行关闭数据库连接的操作,略显繁琐
var pool = mysql.createPool({
connectionLimit : 10,
host : 'localhost', //默认情况下的主机名
user : 'root', //默认情况下的用户名
password : 'secret', //安装时设置的密码
database : 'my_db' //连接的数据库名字
});
//暴露我们封装的方法,使用详情看下方
//使用时传入对应参数,sql为相应sql语句,data为插入或修改所需要的数据
module.exports = (sql, data = []) => {
//使用Promise解决mysql的命令处理异步问题
return new Promise((resolve, reject) => {
//在数据池中进行操作
pool.query(sql, data, function(error, results, fields) {
if (error) {
reject(error.message)
} else {
resolve(results)
}
})
})
}
在需要操作数据库时引入上方db.js文件并调用导出函数
注意,异步函数调用时记得使用async函数配合Promise使用
const db = require('../utils/db')
//传参调用函数即可
let result = await db('SELECT * FROM users;', [])
//或者插入数据不需要返回值的操作
await db('insert into ticket(expires, jsapi_ticket) values(?, ?)', [填写插入数据])
下面呢再讲一下mysql连接出错的问题
- 首先呢可能就是主机、用户名、密码的正确性问题,仔细检查
- 查看连接数据库是否创建
- 由于安装时不清楚留下的问题,详细如下
问题状况
报出Client does not support authentication protocol requested by server; consider upgrading MySQL client这种错误
种种情况呢是因为你安装了高版本的mysql在安装时的一个选项问题
- 解决方法:
在mysql程序包中找到MySQL Installer - Community并打开
点击进入重新设置,开始可以默认配置,到下边认证模式记得切换
第一个是很严格的加密选项,所以才会出现身份验证不支持的错误
其余选项按照之前默认配置即可
完成修改后重启mysql即可,谢谢观看!