记录一下使用nodejs,navicat实现操作mysql数据库的过程,以下都是流水账,哈哈。
1、安装mysql
下载地址:
https://dev.mysql.com/downloads/mysql/
这边我选择的第一个,跳转页面后点击No thanks, just start my download.
下载完成后,解压到相应目录,这里我放到 D:\soft\mysql-8.0.23-winx64
2、配置文件my.ini
接下来创建mysql的配置文件my.ini
用记事本打开my.ini,编辑以下信息:
[client]
# 设置mysql客户端默认字符集
default-character-set=UTF8MB4
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=D:\\soft\mysql-8.0.23-winx64\mysql-8.0.23-winx64
# 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即可,否则有可能报错
# datadir=C:\\web\\sqldata
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=UTF8MB4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
3、初始化mysqld
保存好配置后,开始启动mysql数据库:
以管理员身份打开cmd命令,切换目录到 D:\soft\mysql-8.0.23-winx64\mysql-8.0.23-winx64\bin>
输入初始化命令:
mysqld --initialize --console
执行完成后会输出root用户的初始密码,这边的密码后面要用到哦。
2021-04-07T07:30:43.913991Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: r3diwtGo7_n%
4、安装 mysqld
输入安装命令:
mysqld install
5、启动mysql服务
输入启动服务命令:
net start mysql
(net stop mysql 是停止服务命令)
出现下面两行就显示服务启动成功了。
MySQL 服务正在启动 ..
MySQL 服务已经启动成功。
6、登录mysql
命令行继续输入:
mysql -u root -p
回车确认,输入前面的初始密码,进入mysql>命令
7、修改密码
初始密码不好记,我们可以修改密码:
输入命令修改密码:
ALTER USER USER() IDENTIFIED BY 'root123456';
输入命令使密码不过期:
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
然后就可以输入mysql命令了,在这之前输入任何mysql命令都会报错:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
8、mysql命令行方式创建数据库和表
这里可以自己搜搜教程
9、navicat
我们可以用navicat来更方便的操作数据库,navicat下载安装可以自己搜搜教程
输入之前修改后的密码,测试连接成功后点击确定。
双击连接名test1即可展示数据库内容
10、nodejs连接mysql
安装mysql:
npm install mysql
连接数据库:
test.js内容如下:
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : 'root123456',
database : 'stu_cour'
});
connection.connect();
connection.query('SELECT * FROM student', function (error, results, fields) {
if (error) console.log(error);
console.log('The solution is: ', results);
});
终端运行test.js:
node test.js
如果有报错:Client does not support authentication protocol requested by server; consider upgrading MySQL client 这是默认加密方式导致的
进入mysql命令:mysql -u root -p 回车输入密码,然后输入命令:
alter user 'root'@'localhost' identified with mysql_native_password by 'root123456';
即可。
退出mysql命令:
exit
再次运行 node test.js,终端成功输出数据库表查询内容:
The solution is: [
RowDataPacket { sno: '01', sname: '李明', ssex: '1', sage: 20 },
RowDataPacket { sno: '02', sname: '刘德', ssex: '1', sage: 21 }
]
到此,nodejs成功连接上mysql。