手把手教学如何将springboot-web项目部署到服务器上
0.中间件部署
首先看你的项目是否有中间件, 比如mysql,redis等;
大致过程如下:
- 下载中间件redis(假如是redis)
- 设置好redis的端口 账号 密码
- 运行redis服务
- ps: 当然你也可以在服务器上再起一个docker来运行这些中间,如果你的项目比较多的话, 毕竟docker是个沙箱, 关于docker的操作可以看我的这篇博客
接下来介绍我的项目部署过程
1.部署mysql(从docker中导出sql)
- 安装mysql,我看的这篇博客
- 设置mysql用户和密码(我设置的是root用户以及其账号密码)
- 从本地导出mysql的sql脚本(其实就是
.sql
文件)
这里我的mysql数据库再docker中, 因此我不知道为啥我无法使用mysqldump去导出sql文件(提示说mysqldump的路径错误, 然后我又去docker的mysql 挂载的volumes中招对应的mysqldump可执行文件的路径,粘贴进去还是不行, 因此我选择终端exec进入mysql容器中使用命令行mysqldump导出数据库qqmusic)
- 导出sql文件
- 本地: 上传sql文件到服务器中
- 服务器端: 执行sql脚本
2.更改项目中中间件的配置文件信息
实际情况我们可能更改了中间件的一些端口和ip
或者中间件的账号密码
等我们需要再配置文件中做出对应的修改
3.制作jar包并上传到服务器中运行
- 制作jar包
- 上传到服务器中并运行
4.(拓展)远程连接服务器的mysql
mysql数据库远程
大致过程就是(最简单):
- 开服务器安全组
- 进入mysql后(让任意用户任意Ip都可以连接服务器上的mysql)
mysql> grant all privileges on *.* to root @"%" identified by "此处改成你的MySQL密码";
使用如下流程检查是否允许成功
mysql -uroot -p
输入密码
use mysql
4. 更改bind-address
网上大部分人的做法是sudo vim /etc/mysql/mysql.cnf
然后修改
但是我进入mysql.cnf后发现是这样的
因此我就去修改mysql.cnf.d下的mysqld.cnf了
- mysql
客户端
命令行本地连接到远程服务器中
# 这里我用的docker中的mysql客户端
docker exec -it mysql bash
mysql -h xx.xx.xx.xx -P 3306 -u你的用户 -p你的密码
或mysql -h xx.xx.xx.xx -P 3306 -u 你的用户 -p 你的密码
本地docker中的mysql密码忘记了怎么办
- 在docker中修改mysql的配置文件
vim /etc/mysql/conf.d/my.cnf
但是docker里面没有vim还要下载,下载有没有包管理器,算了我用docker cp把;
- 复制docker中的文件到本地
docker cp 容器名:容器中的文件路径 要复制到本机那个路径 - 复制本地的文件到docker容器中
docker cp 本机要复制的文件的路径 容器名:复制的文件放到容器中的文件路径
因此我先本地vim docker.cnf
(不知道为啥这个也可以大概是mysql会识别.cnf
后缀的文件然后读取里面的内容)
#文件中的内容必须要这样
[mysqld]
skip-grant-tables
然后
docker exec -it mysql bash
mysql -uroot -p#然后不用输密码直接进就行
之后看这篇知乎的博客就可以完美解决问题了,主要是这一步(对了,高版本的mysql密码不再是password字段了好像是这个authentication_string字段)
但是也可以学习一下这篇CSDN博客(选择性看)