自动化部署项目
使用shell脚本进行发布。
- git clone url 将代码从远程克隆下来
- 将shell jar包的参数修改为你对应打成的jar包名称
- 切换到对应的目录下使用./脚本名称进行启动
- 最后使用远端进行访问
使用nginx进行代理
- 创建对应的代理端口在nginx目录下的nginx.conf进行修改
- 对应的配置文件
server {
listen 80;
server_name localhost;
location / {
root html/dist;
index index.html index.htm;
}
location ^~ /api/ {
rewrite ^/api/(.*)$ /$1 break;
//代理的端口
proxy_pass http://192.168.32.130:8080;
}
3.将前端打成的包上传到html目录下。
4.在sbin目录下启动nginx访问对应的端口。
5.最后访问对应的端口。
建立主从复制:
建立主库:
第一步:修改Mysql数据库的配置文件/etc/my.cnf
[mysqld]
log-bin=mysql-bin #[必须]启用二进制日志
server-id=100 #[必须]服务器唯一ID
第二步:重启Mysql服务
systemctl restart mysqld
第三步:登录Mysql数据库,执行下面SQL
GRANT REPLICATION SLAVE ON . to ‘xiaoming’@‘%’ identified by ‘Root@123456’;
注:上面SQL的作用是创建一个用户xiaoming,密码为Root@123456,并且给xiaoming用户授予REPLICATION SLAVE权限。常用于建立复制时所需要用到的用户权限,也就是slave必须被master授权具有该权限的用户,才能通过该用户复制。
还要做一步,就是刷新权限
flush privileges;
第四步:登录Mysql数据库,执行下面SQL,记录下结果中File和Position的值
show master status;
从库配置:
1.第一步:修改Mysql数据库的配置文件/etc/my.cnf
[mysqld]
server-id=101 #[必须]服务器唯一ID
2.第二步:重启Mysql服务
systemctl restart mysqld
3.第三步:登录Mysql数据库,执行下面SQL 【不是直接把这句话拷贝过去执行,要记得修改内容】
change master to master_host=‘192.168.138.100’,master_user=‘xiaoming’,master_password=‘Root@123456’,master_log_file=‘mysql-bin.000005’,master_log_pos=441;# 启动从库
start slave;
4.第四步:登录Mysql数据库,执行下面SQL,查看从数据库的状态
show slave status;
show slave status\G; 使用列形式打印
5.如果两个虚拟机是本地演示的话 使用克隆创建的需要进行uuid的修改或者将一个的uuid的目录进行移动 。
6.mv /var/lib/mysql/auto.cnf /var/lib/mysql/auto.cnf.bak
systemctl restart mysqld
7.在主库进行操作 看看从库数据有没有同步。
主从复制的原理:
从库读取主库的日志文件,然后从库的io线程进行日志的读取,在从库读取到对应的日志之后,io线程会将数据写到对应的Relay log文件当中去,SQL线程读取Replay log,将文件repaly到SQL线程当中。