冷备份MySQL数据库并且使用Docker直接运行的操作过程
2021/11/9 2:14:12
本文主要是介绍冷备份MySQL数据库并且使用Docker直接运行的操作过程,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
备份数据库
- 查看数据库的数据文件的位置
systemctl status mysqld
查看启动进程以及防水
/etc/my.conf
查看datadir
指向Mysql数据库的存储数据路径. - 关闭数据库
systemctl stop mysqld
- 备份数据库数据文件
mkdir /mysqlindocker && time scp -r /var/lib/mysql /mysqlindocker
scp /etc/my.cnf /mysqlindocker/
mkdir /mysqlindocker/log
mkdir /mysqlindocker/mysql-files
chown mysql:mysql /mysqlindocker/ -R && chmod 777 /mysqlindocker -R
chmod 644 /mysqlindocker/my.cnf
拉取mysql的镜像
- 从docker hub 拉取
docker pull mysql:8.0.25
- 可以从可以上网的机器上面备份好之后再执行导出和导出
docker save mysql:8.0.25 -o /mysql_docker_8025.tar
- 复制到当前机器上面后执行导入操作
docker load -i /mysql_docker_8025.tar
使用命令拉起来mysql数据库
- 直接写命令
docker run --name mysql3307 -p 3307:3306 -v /mysqlindocker/mysql:/var/lib/mysql -v /mysqlindocker/mysql-files:/var/lib/mysql-files -v /mysqlindocker/my.cnf:/etc/my.cnf -v /mysqlindocker/log:/var/log -e MYSQL_ROOT_PASSWORD=Test20131127 -e TZ=Asia/Shanghai -d mysql:8.0.25
配置参数说明
- my.conf 的参数说明
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid max_allowed_packet = 1G innodb_log_file_size = 30M innodb_log_buffer_size = 256M innodb_buffer_pool_size=2G innodb_file_per_table = 1 max_connections=2000 lower-case-table-names=1 innodb_strict_mode = 0 character_set_server=utf8 default-time-zone='+8:00' transaction-isolation = READ-COMMITTED default_authentication_plugin=mysql_native_password binlog_expire_logs_seconds = 7200 [mysql] default-character-set=utf8 prompt="\\u@\\h : \\d \\r:\\m:\\s>"
配置参数说明
- datadir 指代数据目录
- innodb 指代log文件以及内存占用大小,可以进行调整以适应不同的并发情况.
- max_connections 标明数据库能够提供的访问并发数量.
- lower-case-table-names 标明建库时数据库表名的大小写模式.
- innodb-strict-mode 标明可以避免部分异常SQL的异常提示, 造成环境安装和使用中断.
- utf8 使用了utf8mb3的字符集, 因为erp应用会使用较多的字段数,使用其他字符集可能导致单表的总字符长度数不够的问题.
- time-zone 标明时区
- read-committed 标明可重复读的模式.
- 标明mysql的密码格式.
- binlog_expire_logs_seconds 标明binlog的过期时间, 测试环境可以设置的比较小, 不然会占用较多的磁盘.
- 标明客户端的字符集.
- 标明mysql 登录时的提示信息,避免自己输入错误了.
Docker 命令说明
docker run 正常运行容器的命令 --name mysql3307 只对容器的名字,便于进行容器的启停查看log等. -p 3307:3306 将端口expose 出来,需要注意的是 前面的是主机的端口, 后面的是容器内的端口 -v /mysqlindocker/mysql:/var/lib/mysql 这个定义的是 数据文件 -v /mysqlindocker/mysql-files:/var/lib/mysql-files 需要增加一个空文件 尽心初始化使用 -v /mysqlindocker/my.cnf:/etc/my.cnf 指定自己的配置文件到容器内部, 需要注意的是这个文件 需要 644的执行权限才可以 -v /mysqlindocker/log:/var/log 增加系统log目录 -e MYSQL_ROOT_PASSWORD=Test20131127 必须指定一个root密码,但是如果 -v 了存储目录 会使用内部的密码来代替这个密码 -e TZ=Asia/Shanghai 指定时区, 修改为东八区 -d mysql:8.0.25 指定镜像以及版本
这篇关于冷备份MySQL数据库并且使用Docker直接运行的操作过程的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-07MySQL读写分离入门:轻松掌握数据库读写分离技术
- 2024-12-07MySQL读写分离入门教程
- 2024-12-07MySQL分库分表入门详解
- 2024-12-07MySQL分库分表入门指南
- 2024-12-07MySQL慢查询入门:快速掌握性能优化技巧
- 2024-12-07MySQL入门:新手必读的简单教程
- 2024-12-07MySQL入门:从零开始学习MySQL数据库
- 2024-12-07MySQL索引入门:新手快速掌握MySQL索引技巧
- 2024-12-06BinLog学习:MySQL数据库BinLog入门教程
- 2024-12-06Binlog学习:MySQL数据库的日志管理入门教程