node+koa2+mysql项目部署到阿里云服务器详解

608 阅读2分钟

阿里云部分

1、先购买阿里云,笔者购买的是学生机,选择操作系统:Ubuntu,16.04 64位(只有这一选项╮(╯▽╰)╭)

2、购买完成之后,选择远程连接,进入终端。
3、修改登录终端的密码,修改完成后,进行登录
4、配置网络和安全组,如上图弹出框密码/密钥下

设置你接口的端口(一般在app.js有,自己设置listen的),和其他用到的端口。例如websocket

配置node环境,这里就不细说,请看官网例子步骤二就行

能输出node和npm版本号说明安装成功了。

在配置node环境前先运行`sudo apt-get update` 更新 apt-get,这也是输入第一条命令

安装pm2

npm install pm2 -g

pm2用于守护进程,可以让我们的 node app.js 一直运行,不至于退出连接服务器就断掉。

通过pm2 -v有输出版本号说明安装成功。

安装mysql


sudo apt-get install mysql-server
 
sudo apt install mysql-client
 
sudo apt install libmysqlclient-dev

上传项目,这里使用的是winscp工具

1、打开工具,登录。

2、直接将我们的项目文件夹拖到服务器的 home 目录下,项目文件包含mysql文件

配置数据库

1、在终端登录数据库

mysql -u root -p

密码:用户和密码,默认为root

2、创建数据库

create database 数据库名;(要以分号介绍,数据库名最好跟你项目一样的数据库名)

3、使用该数据库

use 数据库名;

4、导入sql文件

source /home/sportdiet.sql; (你sql文件保存的路径)

5、查看数据库中表格

show tables;

能看到数据库表说明导入成功

6、 退出数据库操作
exit;

7、修改项目数据库配置文件

在你项目中,修改数据库配置文件,在winscp中直接点击对应文件打开

测试和挂载

切换到 app.js的所在位置cd /home/sportdietapi,可以先 node app.js看有没有输出错误,和在浏览器地址栏输入获取请求数据的路径,看是否有数据输出

没有问题,退出,换pm2进行一直挂载 pm2 start app.js --watch

可能出现bug

网上说出现这种情况的原因是:mysql8之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password

解决:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用户的密码

FLUSH PRIVILEGES;#刷新权限