本文首发在 这里

服务器系统使用 CentOS 7.x

考虑数据安全,一般会选用 VeraCrypt

yum install fuse fuse-libs

rpm -ivh https://launchpad.net/veracrypt/trunk/1.24-update7/+download/veracrypt-console-1.24-Update7-CentOS-7-x86_64.rpm

veracrypt -t -c

mkdir /home/work
veracrypt /home/data /home/work
veracrypt -d

考虑各种方便,请选用 Docker 安装 MySQL 和 Redis

yum install docker
service docker start

若服务器在国内,不能成功拉取镜像,可以考虑为 Docker 使用镜像加速器

/etc/docker/daemon.json 增加 "registry-mirrors": ["https://hub-mirror.c.163.com"] 后重启 Docker

docker pull mysql:5.7.32
docker pull redismkdir -p /home/work/docker/mysql/data
mkdir -p /home/work/docker/redis/datavi /home/work/docker/mysql/mysqld.cnf
vi /home/work/docker/redis/redis.confdocker run --privileged --name mysql -p 127.0.0.1:3306:3306 -v /home/work/docker/mysql/data:/var/lib/mysql -v /home/work/docker/mysql/mysqld.cnf:/etc/mysql/conf.d/mysqld.cnf -e MYSQL_ROOT_PASSWORD=123456 -e TZ=Asia/Shanghai -d mysql:5.7.32
docker run --privileged --name redis -p 127.0.0.1:6379:6379 -v /home/work/docker/redis/data:/data -v /home/work/docker/redis/redis.conf:/etc/redis.conf -e TZ=Asia/Shanghai -d redis redis-server /etc/redis.conf

可以考虑为每个容器创建 run.sh 备忘 docker run ... 命令,便于日后重置容器,譬如修改监听地址或端口

-e MYSQL_ROOT_PASSWORD='qwe123!@#&'
-e MYSQL_ROOT_PASSWORD="$MYSQL_ROOT_PASSWORD"
docker image save -o mysql.tar mysql:5.7.32
docker image load -i mysql.tar

Redis 配置

requirepass password
save 86400 1
stop-writes-on-bgsave-error no

MySQL 主配置

[mysqld]
event_scheduler = 1
max_connections = 10000general_log = 1
log_timestamps = SYSTEM
general_log_file = mysql_general.logserver-id = 1
log-bin = mysql-bin
binlog-ignore-db = information_schema,mysql,performance_schema,sys,test
expire_logs_days = 15sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

MySQL 从配置

[mysqld]
server-id = 2
read_only = 1
super_read_only = 1
log-bin = mysql-bin
relay_log = mysql-relay
binlog-ignore-db = information_schema,mysql,performance_schema,sys,test
expire_logs_days = 15
log-slave-updates = ON

创建容器时若直接使用从库配置请先注释 super_read_only,成功后请取消注释,避免人为手动修改

MySQL 主从同步

SHOW MASTER STATUS\G;
CHANGE MASTER TO MASTER_HOST='192.168.1.1', MASTER_PORT=3306, MASTER_USER='root', MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154;
START SLAVE;
SHOW SLAVE STATUS\G;

数据备份和恢复

只读从库定期备份

0 3 */7 * * /home/work/backup/backup.sh
#!/bin/bash
cd /home/work/backup
find . -name '202*.sql' -mtime +8 -delete
find tar -name '202*.tar.gz' -mtime +8 -delete
docker exec mysql sh -c 'exec mysqldump -uroot -p"$MYSQL_ROOT_PASSWORD" --events --routines --master-data=2 --databases game data' > $(date +%Y_%m_%d).sql
tar zcf tar/$(date +%Y_%m_%d).tar.gz $(date +%Y_%m_%d).sql

可考虑部署文件服务并定期在其它服务器拉取备份文件

docker exec -i mysql sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < /home/work/docker/mysql/all-databases.sql

若非停机备份主库却想恢复最新数据请参考 mysqldump + mysqlbinlog for Backup and Restore

日志备份

0 0 * * * /home/work/mysql_general_log/rotate.sh
#!/bin/bash
docker exec mysql sh -c 'exec mv /var/lib/mysql/mysql_general.log /var/lib/mysql/mysql_general.log.bak'
docker exec mysql sh -c 'exec mysqladmin -p"$MYSQL_ROOT_PASSWORD" flush-logs general'cd /home/work/mysql_general_log
mv /home/work/docker/mysql/data/mysql_general.log.bak mysql_general.log
tar zcf $(date +%Y_%m_%d_%H).tar.gz mysql_general.log
find . -name '202*.tar.gz' -mtime +8 -delete

服务器部署 CentOS、VeraCrypt、Docker、主从MySQL、Redis、备份等相关推荐

  1. 【云服务器部署】---Linux下安装MySQL

    [云服务器部署]---Linux下安装MySQL 有关如何阿里云ECS建网站,推荐一片文章,我是是通过这篇文章安装tomcat和jdk的 网址:阿里云ECS建网站(建站)超详细全套完整图文教程! 注意 ...

  2. 云服务器部署斗地主(docker容器部署,上手容易)

    商用版H5棋牌游戏! 支持千万级用户同时在线!!! 发布此版本的初衷: 朋友聚会打个牌玩个麻将什么的,现在的游戏平台都要充值才能玩,而且还需要下载app.安装和注册,很麻烦-不能尽兴娱乐. 所以,整合 ...

  3. vagrant 安装centos7后,安装 docker, mysql redis nginx 开发环境

    1.安装VirtualBox https://www.virtualbox.org/ 直接下载安装 2.安装Vagrant https://www.vagrantup.com/downloads.ht ...

  4. linux docker容器MySQL自动备份发送到邮箱

    首先配置mail $yum install mailx $vim /etc/mail.rc #以下内容添加至文件末尾 set ssl-verify=ignore set nss-config-dir= ...

  5. Docker下Mysql数据备份

    Mysql数据备份 温馨提示 :本篇文章内容 手动备份 1.进到docker-compose配置文件所在目录 cd /root/apps/data-input-sy 2.查看所有镜像 docker-c ...

  6. Docker 安装 Mysql , Redis,ElasticSearch,Kibana,RabbitMQ,Zipkin,Nacos,Minio Docker服务器环境搭建

  7. 最详细的阿里云服务器Centos 安装jdk,tomcat,mysql,redis之jdk安装与卸载

    一.jdk下载安装 (先不说安装,先说卸载:确保环境是净化过的) (1)首先一定要养成个好习惯,在安装之前查看系统是否有没有自带jdk (2)查看是否有相关文件java文件 (3)如果有,将以上信息全 ...

  8. 一台服务器部署多个版本的MySQL,不会冲突吗?如何管理?

  9. mall在Linux环境下的部署(基于Docker容器)

    部署思路 开发人员将开发好的mall电商项目包交给我,我用以下方法来部署运维: 1. Docker环境安装配置 2. MySQL数据库安装配置 3. Redis安装配置 4. Nginx安装配置 5. ...

最新文章

  1. Linux系统服务器如何禁ping
  2. 一体化市场谋定国际品牌贸易 对话国际农民丰收节贸易会
  3. Bom技术类型的讲解
  4. ModelAttribute注解
  5. JSF Tomcat配置示例
  6. 程序员面试金典 - 面试题 04.04. 检查平衡性(二叉树高度)
  7. python 学习手册重点
  8. 部编版是什么版本_教材部编版和人教版的区别
  9. JSON在线格式化,美化
  10. Win10 解决小娜助手占用过高CPU资源问题
  11. 多层卷积后感受野的计算
  12. 陳三甲网络笔记:即使你摆正了姿势,也不一定能赚到钱!
  13. nginx必须使用域名访问的两种设置方法
  14. 使用码云和博客园学习简易教程
  15. UE4(虚幻4)预算上的纹理流送池(texture streaming poor over)报警解决方法
  16. API接口,亲测有效
  17. CSCD(中国科学引文数据库)介绍
  18. 【Ansys】错误:The files shown in details are missing from the project.
  19. 电解电容与固态电容全面对比分析
  20. 微信广告,朋友圈广告,个性化推荐 百度指数趋势分析解读

热门文章

  1. 千兆路由器简评 wifi6+果然好用!
  2. 微信分享音乐给好友时会话列表无法快捷播放问题填坑记录
  3. 简单几步骤查看未签收的快递单号
  4. 华为智能摄像头pro鸿蒙系统,内置鸿蒙系统,华为生态产品海雀智能摄像头Pro体验...
  5. Blinkingcamera产品免责声明
  6. JavaScript实现小数点后保留2位数
  7. LeetCode题解 —— 三倍快乐 很难不爱
  8. windows比cmd更强大的 WMIC命令使用详解
  9. Lasso线性回归学习笔记(公式与代码实现)
  10. nginx重启,关闭