文章目录
-
- [1. 在云服务器的 MySQL(MariaDB) 中, 建库建表](#1. 在云服务器的 MySQL(MariaDB) 中, 建库建表)
- [2. 微调代码](#2. 微调代码)
- [3. 打包](#3. 打包)
- [4. 把 war 包 拷贝到云服务器上](#4. 把 war 包 拷贝到云服务器上)
- 端口被占用处理
1. 在云服务器的 MySQL(MariaDB) 中, 建库建表
在云服务器中进入 MySQL
m
mysql -u root -p
把之前本地写好的 SQL 代码一粘贴即可
例如:
mysql
-- 这个文件主要用来写建库建表文件
-- 一般都建议, 在建表的时候把建表 sql 保留下来, 以便后续部署到其他机器
create database if not exists blog_system character set utf8mb4;
use blog_system;
-- 删除旧表, 从新建立新表, 删除旧表是为了防止之前的残留的数据对后续的程序有负面影响
drop table if exists user;
drop table if exists blog;
-- 真正创建表
create table blog (
blogId int primary key auto_increment,
title varchar(128),
content varchar(4096),
postTime datetime,
userId int
);
create table user (
userId int primary key auto_increment,
username varchar(20) unique, -- 要求你的用户名和别人的不重复
password varchar(20)
);
-- 构造测试数据
insert into blog values(1, '这是我的第一篇博客', '从今天开始我要认真学习',now(), 1);
insert into blog values(2, '这是我的第二篇博客', '从昨天开始我要认真学习',now(), 1);
insert into blog values(3, '这是我的第三篇博客', '从前天开始我要认真学习',now(), 1);
-- 构造测试数据
insert into user values(1,'zhangsan', '123');
insert into user values(2,'李四', '123');
然后我们查看一下表
用完 MySQL 想退出按下 Ctrl + D 即可
2. 微调代码
本地的数据库, 端口号, 用户名, 密码和云服务器的数据库可能不一样
本地数据库, 是自己安装的时候设置了密码
云服务器默认没密码
使用 netstat -anp | grep mysql 命令查看端口号
自己写的代码就得和这些信息匹配
3. 打包
使用 Meven 打成 war包
在 pob.xml 中设置好打的是 war 包和包名
xml
<packaging>war</packaging>
<build>
<finalName>blog_system</finalName>
</build>
然后双击打包
4. 把 war 包 拷贝到云服务器上
然后打开 tomcat 目录中的 webapps 目录
然后把打好的 war 包拖进来
然后启动 tomcat
进入 bin 目录
使用 sh startup.sh 命令 启动tomcat
我们验证一下是否真正启动
使用 netstat -anp | grep 8080 命令查看 8080 端口是否启动
这里看到 LISTEN 状态就是启动了
端口被占用处理
如果启动不成功, 我们可以查看 8080端口和8005端口是不是被其他程序占用了
l
netstat nap | grep 8005
因为我这里是正常启动的, 所以这些都是正确的
我们使用这个命令可以看到 8005端口 被 名字为 java , 进程id 为 3063 的进程给占用了
使用 ps aux 命令查看所有进程的详细信息, 搭配 grep 就可以定位到指定进程了
l
ps aux | grep 3063
我们可以把 3063 端口改成别的
也可以把这个占用此端口的进程关闭(下策,不建议)
那我们就改端口
首先切换到 conf 目录中, 这个目录放的就是配置文件
然后查看一下 8005 在那个文件中
使用
l
grep 8005 *
查看
然后使用 vim 打开更换端口即可
l
vim server.xml
把这个端口改了就好啦
重启服务器即可
成功启动了, 我们就能直接访问了吗?
不一定
这是什么原因呢?
这种情况, 要么就是服务器没有正常启动(前面通过 netstat 已经验证)
要么就是服务器的防火墙/安全组, 没有正确打开
云服务器为了保证咱们机器的安全, 引入的安全机制
默认情况下只有这个机器的 22 端口(ssh) 是可以对外访问的, 要想让其他端口也能被外面访问, 就需要手动处理一下
如果是轻量级应用服务器, 我们要改的是防火墙
如果是 ECS 服务器, 我们改的是安全组
这里我们以 轻量级应用服务器为例(我用的是腾讯云服务器)
先登录腾讯云, 进入控制台
进入到防火墙, 然后添加规则
把 8080 端口放开即可
确定之后, 生效可能需要几分钟, 有可能立马生效, 等几分钟就好