dockermysql⽇志_Docker部署Mysql,挂载⽇志、配置⽂件和
数据,开启binlog
简介
利⽤Docker的mysql容器,可以⽅便的部署⼀个简单的mysql服务器
实现步骤
1、下载镜像docker pull mysql
2、运⾏容器docker run -d -p 3306:3306 --name your_db_name -v /your_directory/mysql/data:/var/lib/mysql -v
/your_directory/mysql/conf:/etc/mysql/conf.d -v /your_directory/mysql/log:/var/log/mysql -e
MYSQL_ROOT_PASSWORD=your_password mysql
3、参数解析-v /your_directory/mysql/data:/var/lib/mysql 挂载数据库数据
-v /your_directory/mysql/conf:/etc/mysql/conf.d 挂载配置⽂件
-v /your_directory /mysql/log:/var/log/mysql 挂载数据库⽇志
-e MYSQL_ROOT_PASSWORD=your_password 数据库root⽤户的密码
mysql 镜像名
--name your_db_name 定义的容器名
-d 后台运⾏容器
创建可供外部访问的⽤户CREATE USER test@'%' IDENTIFIED BY 'test';
GRANT ALL privileges ON test.* TO test@'%';
FLUSH PRIVILEGES;
开启binlog⽇志
在/your_directory/mysql/conf⽬录下,新建⽂件myf,因为我们做了挂载映射,因此 /your_directory/mysql/conf/myf相当于是容器内的/etc/mysql/conf.d/myf。
⽽MySQL的容器实例设置会组合 /etc/mysql/myf 和 /etc/mysql/conf.d/myf 两个配置⽂件。
在myf中输⼊以下内容:[mysqld]
log-bin=/var/lib/mysql/mysql-bin
server-id=1
binlog_format=MIXED
expire_logs_days=30
##binlog⽇志有三种格式:Statement、Row以及Mixed。 mysql默认采⽤statement,
##这⾥使⽤mixed
##expire_logs_days是⽇志过期时间,这⾥配置为30天,默认是0,0是永久的意思
重启容器docker restart mysql,即可开启binlog。可使⽤相关命令查询binlog:##查看binlog⽇志是否开启
show variables like '%log_bin%';
##查看binlog⽇志路径
show variables like '%datadir%';
##刷新⽇志,会新建⼀个binlog⽇志⽂件
flush logs
##查看⽇志详情内容
show binlog events in 'mysql-bin.000002';
##查看⽇志过期时间 0为永久
show variables like 'expire_logs_days';
通过binlog⽇志恢复数据
mysql⾃带mysqlbinlog⼯具。进⼊docker容器直接运⾏指令:mysqlbinlog --start-datetime='2021-01-20 05:02:02' --stop-datetime='2021-01-20 09:02:02' /var/lib/mysql/mysql-bin.000001 | mysql -u root -p
即可恢复数据。其中参数解释如下:--start-datetime='2021-01-20 05:02:02' 开始时间
--stop-datetime='2021-01-20 09:02:02' 结束时间
docker进入容器/var/lib/mysql/mysql-bin.000001 binlog⽇志⽂件,如有多个⽂件,可按顺序 写下,以空格隔开
| mysql -u root -p 表⽰以root账号执⾏mysql的数据恢复操作
另外分享⼀篇关于全量备份和增量备份的⽅案的博⽂:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。