配置 MySQL 服务器容器
本文介绍在单一宿主机上如何配置自动备份。建议使用两个容器,其中一个容器作为 MySQL 的服务器,用来处理数据;另一个容器用于自动备份。这样保证隔离,避免备份的容器影响到 MySQL Server 的可用性。
配置 MySQL 服务器容器
建立容器:
docker run --name mysql-a \
-p 3306:3306 \
-v /zc/mysql/datadir-a:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD='123456' -d mysql:latest
进入容器的 bash :
docker exec -it mysql-a bash
1
设置时区:
tzselect
1
输入tzselect命令后,根据屏幕提示输入大洲、城市。因为中国的东八区时间,所以选择 Asia/Hong Kong。做好选择后,输入命令:
cp /usr/share/zoneinfo/Asia/Hong_Kong /etc/localtime
1
来持久化你的设置。
进入 /etc/mysql/conf.d
cd /etc/mysql/conf.d
1
在这个目录下,可以创建一个新的文件。文件名可随便起,只要保证后缀名是 .cnf 即可。因为 MySQL 的官方镜像默认没有带 vim 编辑器,所以建议使用 cat 命令来编写配置文件:
cat >zhangchao.cnf <<EOF
[mysqldump]
user=root
password='123456'
[mysqld]
max_allowed_packet=8M
lower_case_table_names=1
character_set_server=utf8
max_connections=www.tianzunyule178.com 300
max_connect_errors=www.tygj178.com 200
EOF
输入 exit 来退出容器,使用 docker stop mysql-a 和 docker start mysql-a 重启容器即可。
配置 MySQL 备份容器
建立容器:
docker run --name mysql-b \
-v /zc/mysql/backup-a:/zc/mysql/backup \
-e MYSQL_ROOT_PASSWORD='123456' -d mysql:latest
查看虚拟网络,其中 bridge 是 Docker 默认使用的虚拟网络:
docker network inspect bridge
1
在返回的结果中,找到 Containers 部分。内容如下:
"Containers": {
"asdf2334a": {
"Name": "mysql-a"
"EndpointID": "sadfas234"
"MacAddress": "...."
"IPv4Address": "192.168.0.2"
Containers 列出了所有使用 bridge 网络的容器。因为我给 MySQL 服务器容器起名为 mysql-a,所以我查看Name 为 mysql-a 的配置。IPv4Address表示容器mysql-a的虚拟IP是 192.168.0.2 。记录下这个IP 。
进入容器的 bash :
docker exec -it mysql-b bash
1
更改时区,使用 tzselect 命令和cp命令,具体步骤与上面的mysql-a一样。
安装VIM和CRON定时任务:
apt-get update && apt-get www.dfgjpt.com/ install vim
apt-get update && apt-get www.zhongdayule.cn/ install cron
生成一个shell脚本文件来进行备份。
cat >/zc/mysql/backup.sh <<EOF
#!/bin/sh
zcDATE=\$(date +%Y%m%d)
mkdir /zc/mysql/backup/\$zcDATE
mysqldump -h '192.168.0.2' -uroot -p'123456' --databases db1 > /zc/mysql/backup/\$zcDATE/db1.sql
mysqldump -h '192.168.0.2' -uroot -p'123456' --databases db2 > /zc/mysql/backup/\$zcDATE/db2.sql
EOF
MySQL上存在两个数据库,名称分别是 db1 和 db2,利用这种方式在硬盘上备份数据。-h表示远程的服务器IP。-u 和 -p 分别是远程服务器的用户名和密码。这里不建议使用 mysqldump 的 –all-database 选项。因为该选项会把远程MySQL里的系统数据库也备份下来,包括 root 用户的密码等内容。如果你要把导出的内容导入到别的机器上,这些系统设置(比如用户名和密码)会覆盖你的机器上原来的设置。
设置定时任务的启动时间:
crontab -e
1
在打开的文件中输入一下内容:
0 23 * * * sh /zc/mysql/backup.sh
1
系统默认使用VIM打开这个文件。修改完后用 wq 命令保存文件。
启动定时任务的服务:
service cron start
1!
配置 MySQL 服务器容器的更多相关文章
- Confluence 6 配置 MySQL 服务器
在这一步,你将要配置你的 MySQL 数据库服务器. 注意: 如果你尝试连接你的 Confluence 到一个已经存在的 MySQL 数据库服务器.我们强烈建议你按照下面描述的安装步骤在 MySQL ...
- jsp 配置MySQL服务器 以及数据的插入和读取
不多说,直接上代码.百度上面也是一大堆,大家多问百度就行. 在利用JDBC访问数据库过程中,主要涉及三种资源:对数据库的连接的连接对象Connection,SQL语句对象 Statement,访问结果 ...
- CentOS6.4 配置mysql服务器启动多个端口,同步单表数据
============================================================ ====多端口启动==== ========================= ...
- 【linux】安装和配置 mysql服务器
按照官网教程,根据自己的系统安装不同的发行版 https://dev.mysql.com/doc/refman/5.6/en/linux-installation-yum-repo.html 配置: ...
- 配置MySQL服务器使得外网可以连接
https://blog.csdn.net/bird3014/article/details/78481104
- jmeter连接配置带跳板机(SSH)的mysql服务器
jmeter连接配置mysql服务器时,如果数据库服务器没有通过ssh连接,则只需要配置相应的jdbc参数就可以了,即请求域名或ip地址:3306,如果数据库服务器是通过SSH连接的,那需要通过中间远 ...
- 通过JNDI从服务器容器中获取资源_Spring JNDI+Mysql+Tomcat
通过JNDI从服务器容器中获取DataSource资源 (由容器管理,不要关闭它,容器自己会处理)上一篇我们使用的是dbcp,这里使用JNDI: 使用JNDI连接数据: 在Spring可以注释 < ...
- Docker容器内连接宿主机即CentOS的Mysql服务器
docker的宿主机是虚拟机下的CentOS 博主最近遇到一种情况,从服务器拷贝了一份数据库在宿主机Mysql服务器上,想要用本地的数据库测试自己的代码正确性,但是项目程序都是靠docker一键部署的 ...
- 如何配置远程mysql服务器
如何配置远程mysql服务器 分配用户权限 可以先看一下目前的用户权限状况: use mysql; select host,user,password from user; 然后分配新的权限给某一用户 ...
随机推荐
- C#去掉字符串最后面的一个标点符号的写法
keywordHtml = keywordHtml.Remove(keywordHtml.LastIndexOf(','),1);
- mybatis association嵌套association的两级嵌套问题
今天遇到了一个双表连接查询以及自关联的问题,由于第一次遇到,所以在这记下,日后好查阅 针对一个表的关联属性本身也有自关联的情况下,可以用association嵌套association的方法来处理. ...
- ssh整合思想 Spring与Hibernate的整合 项目在服务器启动则自动创建数据库表
Spring整合Hibernate Spring的Web项目中,web.xml文件会自动加载,以出现欢迎首页.也可以在这个文件中对Spring的配置文件进行监听,自启动配置文件, 以及之前Struts ...
- mount命令的用法,以及技巧光盘镜像文件、移动硬盘及U盘的方法
本文介绍mount命令的用法,以及技巧光盘镜像文件.移动硬盘及U盘的方法. 一,挂接命令(mount) 挂接(mount)命令的使用方法. 命令格式: 复制代码 代码如下: mount [-t vfs ...
- Docker自学纪实(一)Docker介绍
先简单了解一下,做个记录,以便不时之需. Docker简介:Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依 ...
- Python爬虫系列-PyQuery详解
强大又灵活的网页解析库.如果你觉得正则写起来太麻烦,如果你觉得BeautifulSoup语法太难记,如果你熟悉jQuery的语法,那么PyQuery就是你的最佳选择. 安装 pip3 install ...
- python基本操作(五)
if 判断 if 条件: 代码1 代码2 代码3 代码块(同一缩进级别的代码,例如代码1.代码2和代码3是相同缩进的代码,这三个代码组合在一起就是一个代码块,相同缩进的代码会自上而下的运行) cls ...
- java web项目(spring项目)中集成webservice ,实现对外开放接口
什么是WebService?webService小示例 点此了解 下面进入正题: Javaweb项目(spring项目)中集成webservice ,实现对外开放接口步骤: 准备: 采用与spring ...
- python之序列化
什么叫序列化? 序列化是指把内存里的数据类型转变成字符串,以使其能存储到硬盘或通过网络传输到远程,因为硬盘或网络传输时只能接受bytes. 把字符转换成内存数据类型,叫反序列化. 为什么要序列化? 你 ...
- Linux学习-备份要点
备份资料的考虑 老实说,备份是系统损毁时等待救援的救星!因为你需要重新安装系统时, 备份的好坏会影响到你 系统复原的进度!事实上,系统有可能由于不预期的伤害而导致系统发生错误! 什么是不预期的伤害呢? ...