![cover](https://img-blog.csdnimg.cn/img_convert/7168358bc3bd4065b5ed2cb9fb534b1d.png)
阿里云服务器部署日记(三),保姆级教程,实际nest测试项目部署,包括连接数据库
前面两篇文章已经按照阿里云服务器部署引导在云服务器上把node环境安装好并且把示例工程跑起来了,接下来尝试把我们自己的nestjs项目部署到云服务器实例上跑起来。
前面两篇文章已经按照阿里云服务器部署引导在云服务器上把node环境安装好并且把示例工程跑起来了,接下来尝试把我们自己的nestjs项目部署到云服务器实例上跑起来
1、mysql安装
由于我们项目中需要用到mysql数据库,所以要先安装mysql
- 依次执行命令下载并安装MySQL数据库。回显信息显示Complete!,表示MySQL数据库安装成功。
-
wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm sudo yum install -y mysql57-community-release-el7-10.noarch.rpm sudo yum install -y mysql-community-server --nogpgcheck
- 完成
- 执行命令启动MySQL数据库。
-
sudo systemctl start mysqld.service
- 执行命令查看MySQL数据库的运行状态。
-
systemctl status mysqld.service
- 运行中
- 执行命令查看MySQL数据库的初始密码。
sudo grep "password" /var/log/mysqld.log
-
执行命令登录MySQL数据库。
mysql -u root -p
登录完成(密码输入可以在上一步输出内容里面复制粘贴过来)
-
执行命令修改MySQL数据库的初始密码。
-
密码必须同时包含大小写英文字母、数字和特殊符号中的三类字符。
-
注意每条完整的SQL命令结尾都有一个半角分号(;),如果多行命令中间没有分号分隔,这些命令将不会执行,直至遇到一个分号。
ALTER USER 'root'@'localhost' IDENTIFIED BY '<新密码>';
查看现在有哪些库
show databases;
可以看到有以下四个库
再看我们测试工程里面用到的库叫db,没有同名库
于是在数据库下创建db库
create database;
创建成功,可以看到已经有叫db的库了
现在回到项目中,不管怎样先npm i 一波,依赖安装完打包:npm run build,
对了,记得把nest项目中mysql配置中的用户名跟密码改成你服务端用的账号密码,还有端口号
查看端口号:
因为执行完之前的环境还处于sql命令行里面,所以先退出sql命令行
再执行以下命令:
mysql --help | grep port
可以看到端口号为0
2、项目代码上传
回到项目,项目打包完成之后会打包到dist目录下,这时候就要用到文件上传工具
- FileZilla
- WinSCP
- Cyberduck
我这里用的WinSCP,这个自己去搜一下下载一个就好了
安装好了之后第一次打开会弹出窗口让我们连接我们的主机
主机名就是我们的弹性公网ip,端口号22,一般实例里面安全组里面入方向的22端口是默认有的,没有的话自己加上
用户名密码就是你在阿里云远程连接时的用户名跟密码(所以不要只用密钥对的方式登录,实例还是要设置密码,设置密码的方式阿里云上面也有提供),点击“登录”会弹出以下提示,点击“接受”
连接成功之后可以看到以下界面,可以看到右边是有我们之前创建的example.js文件的,所以很明显,右边就是远程服务端,左边是我们本地文件
从左边找到我们之前打包好的dist文件夹,直接往右边拖,按照提示往下走,不用动设置,就开始传输了
文件传输完成,右边多了一个文件夹
按照我们运行示例的例子,到此我们应该知道怎么做了,
3、启动服务
切换到dist目录,查看目录下有哪些文件,我们的主入口文件为main.js,直接node运行即可
好吗,第一个问题出现
换个方式试试,用pm2,先安装:
npm install pm2 -g
安装完成之后运行:
pm2 start main.js
成功
尝试访问
看下服务端状态
好,失败了,去哪看日志呢
pm2 logs app_name -e err
说个蠢事,第一次我没把app_name换成我自己在运行的应用名,还不知道怎么退出。。。。。。,最后使用ctrl+c退出的,看结果是模块引入的问题
为啥,因为服务端没有安装npm依赖,所以我们换种方式,在远程服务器创建nest文件夹,直接把除了node_modules跟dist文件夹之外的其他文件跟文件夹拖进来
在服务端安装依赖
切换到nest目录,执行npm i
安装完依赖执行npm run build,继续报错
查了下,node版本问题,看nestjs官网
看我们之前安装的啥版本,v14,所以切换到V16
再npm run build构建一次,成功
上我们的WinScp刷新下可以看到dist目录了,切换到dist目录
此时因为我们切换了node版本,所以需要重新安装pm2,安装好之后我们先把之前的应用停掉
启动成功,再试试
有了!!!!!!,这个错误信息已经进入到我们控制器里面写的东西里面了
有个访问数据库数据的接口,我们试下
没问题,至此说明连接数据库也没问题了,由于我增删改查跟联表查询的东西还没写完全,后面会把这部分补上,再试着把前端静态资源一起部署上去跑通完整前后端流程
还有后续,有喜欢的小伙伴可以继续关注
对了,在这里不得不提一嘴kimi,这里面很多报错啊,各种命令行语句啊,sql语句啊,都可以问kimi,目前也还是免费的,很牛
更多推荐
所有评论(0)