大前提:(如果已安装可跳过)
a:电脑装一个mysql数据库(百度,有很多)
b:找到这个目录,新建文件my.ini,设置编码字符集,内容如下:
[client]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=C:\Program Files\MySQL\MySQL Server 8.0(注意:这里写你自己的目录)
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错
# datadir=C:\\web\\sqldata
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
[mysql]
default-character-set = utf8
命令行 show variables like ‘%char%’; 可以查看编码字符集显示(要先连接上数据库才能看到,怎么连接?看d)
c:然后找到这个目录,shift+鼠标右键,打开命令窗口,执行命令 net start mysql,启动服务;
对应的 net stop mysql 退出服务;
d:这里说一下,用命令行连接mysql数据库,不想看的可以忽略直接看nodejs连接方式:
mysql -u root -p // 回车
Enter password:*******
连接成功。
e:最好是先创建一个数据库和表格以及几条数据,为nodejs连接做准备;这里不细说了,贴个连接自己试试吧。mysql命令行增删改查
或者自行百度。
nodejs连接方式
1.在node_modules里面下载mysql依赖,然后在server.js里面引入(server.js是写在项目根目录的node中间层)
var mysql = require("mysql");
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '密码',
port: '3306',
database : '数据库名称'
});
// 连接数据库
connection.connect();
// 声明查询语句
var sql = 'SELECT * FROM 数据库里的某个表格名称';
//查
connection.query(sql,function (err, result) {
if(err){
console.log('[SELECT ERROR] - 读取数据失败',err);
return;
}
if(!err){
console.log("读取数据成功")
console.log(result);
}
});
// 退出连接
connection.end();
2.执行完 命令 node server.js 之后,遇到了报错:[SELECT ERROR] - 读取数据失败 ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
翻译过来就是说:客户端不支持服务器请求的身份验证协议;请考虑升级MySQL客户端
还是不明白啥意思,各种百度,然后找到解决办法:(虽然还是不懂为什么这样,但能解决就好)
在mysql服务窗口执行命令:
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘你的密码’,
然后窗口会显示 OK… ,
再执行 node server.js 就不会报错了。
nodejs就连接成功mysql了