-
2021-03-14 12:33:27
windows:
1.mysql开启:net start mysql
2.关闭:net stop mysql
3.进入:mysql -h localhost -u root -p root
4.退出: exit
5.配置
my.ini ---mysql的配置文件
1)mysqldump备份:mysqldump -uroot -p t1 -l -F >ceshi.sql
2)开启binlog日志:在ini文件中添加
# Binary Logging
server_id=1918
log_bin = mysql-bin
binlog_format = ROW
也可设置为全路径,那么log文件就会生成存储在设置的文件夹中:
log_bin = E:\MysqlLog\mysql-bin
3)binlog日志恢复数据库:
常见的四个恢复参数:
--start-datetime
--stop-datetime
--start-position
--stop-position
查看binlog日志中的内容:
show binlog events in 'mysql-bin.000002';
找到需要恢复的位置,进行恢复:
mysqlbinlog --start-position="173" --stop-position="286" C:\ProgramData\MySQL\MySQLServer5.5\data\mysql-bin.000002 |mysql -uroot -proot t1
4)flush刷新日志,在此刻产生一个新编号的binlog日志文件 flush logs
注意:每次mysql重启时,会自动执行flush命令,产生新的日志文件;mysqldump备份时,加上-F也会刷新binlog日志
这个新的binlog日志就会用来记录备份之后的数据库“增删改”操作s
恢复日志的流程: 定时mysqldump备份数据,-F刷新日志,记录备份后一段时间内的增删改操作。
当数据库在该段时间内出现数据丢失,先用备份数据恢复, 再根据需要的时间点或者位置点binlog恢复修改的数据。
参考网址:
https://blog.csdn.net/rorntuck7/article/details/84650123
标签:bin,binlog,备份,mysqldump,mysql,日志
来源: https://blog.csdn.net/xiao_Ray/article/details/97163894
更多相关内容 -
MySQL开启binlog日志
2021-07-20 10:23:242、查看binlog是否开启:show variables like "%bin%";,如果是OFF代表是关闭,ON代表开启 3、如果没有开启的情况下,请在服务器上找到对应的MySQL配置文件my.cnf,例如: 4、重启mysql A、使用service启动: ...1、通过命令行登录MySQL,例如navicat:
2、查看binlog是否开启:show variables like "%bin%"; ,如果是OFF代表是关闭,ON代表开启
3、如果没有开启的情况下,请在服务器上找到对应的MySQL配置文件my.cnf,例如:
4、重启mysql
A、使用 service 启动:
service mysqld restart
service mysql restart (5.5.7版本命令)B、使用 mysqld 脚本启动:
/etc/init.d/mysqld restart -
Docker内部MySQL开启binlog日志
2021-01-16 15:18:11发现是没有开启binlog 修改Docker的MySQL的my.cnf配置文件 添加下面内容,注意: log-bin = /logs/mysql-bin.log 是Docker内部的路径,不是Linux宿主机的路径 #设置日志格式 binlog_format = mixed #设置日志路径,注意...查看 binlog状态
在MySQL终端执行一下, Navicat都行
show variables like '%log_bin%'
发现是没有开启binlog修改Docker的MySQL的my.cnf配置文件
添加下面内容,注意: log-bin = /logs/mysql-bin.log 是Docker内部的路径,不是Linux宿主机的路径
#设置日志格式 binlog_format = mixed #设置日志路径,注意路经需要mysql用户有权限写 log-bin = /logs/mysql-bin.log #设置binlog清理时间 expire_logs_days = 5 #binlog每个日志文件大小 max_binlog_size = 50m #binlog缓存大小 binlog_cache_size = 4m #最大binlog缓存大小 max_binlog_cache_size = 512m
重启docker容器重启失败发现报错信息
docker restart 命令重启docker之后发现重启失败
查看docker日志:
docker logs 容器id2021-01-16 07:05:53 0 [Note] mysqld (mysqld 5.6.49-log) starting as process 29 ... mysqld: File '/logs/mysql-bin.index' not found (Errcode: 13 - Permission denied) 2021-01-16 07:05:53 29 [ERROR] Aborting 2021-01-16 07:05:53 29 [Note] Binlog end
上面意思是没权限,需要给docker内部的这个/logs赋予权限,
开始解决问题
把上面修改binlog的配置还原回来,重启docker容器, 让docker重启成功,进入docker容器
命令 : docker exec -it 容器id bash进入容器之后执行:
chown -R mysql:mysql /logs
修改MySQL目录的用户和用户组权限
修改完了之后退出docker
然后再给修改binlog日志信息. 接着重启docker容器,.发现docker容器启动成功
验证一下
连接MySQL执行一下
show variables like '%log_bin%'
发现已经开启binlog -
Docker-compose搭建mysql开启binlog日志
2021-11-26 16:28:29mysql-master: #镜像 image: mysql:5.7 restart: always #名称(可以为空) hostname: mysql-master #容器名称 container_name: mysql_master #端口号 ports: - 3306:3306 #环境变量 environment:docker-compose.yml 如下:
#版本号 version: "3" services: #主数据库 mysql-master: #镜像 image: mysql:5.7 restart: always #名称(可以为空) hostname: mysql-master #容器名称 container_name: mysql_master #端口号 ports: - 3306:3306 #环境变量 environment: MYSQL_ROOT_PASSWORD: root TZ: Asia/Shanghai #挂载文件 volumes: - ./mysql/data:/var/lib/mysql command: #id唯一 --server_id=100 --log-bin=mysql-bin --sync_binlog=1 --binlog-ignore-db=mysql --binlog_format=mixed --expire_logs_days=7 --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci --explicit_defaults_for_timestamp=true --lower_case_table_names=1 --sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
安装成功后可以在挂在目录下看到如下文件:
或者可以通过执行语句来确认一下binlog的是否开启:
mysql> SHOW VARIABLES LIKE '%log_bin%'; +---------------------------------+--------------------------------+ | Variable_name | Value | +---------------------------------+--------------------------------+ | log_bin | ON | | log_bin_basename | /var/lib/mysql/mysql-bin | | log_bin_index | /var/lib/mysql/mysql-bin.index | | log_bin_trust_function_creators | OFF | | log_bin_use_v1_row_events | OFF | | sql_log_bin | ON | +---------------------------------+--------------------------------+ 6 rows in set (0.01 sec)
为了方便测试,我们可以先将log清空一下,此时只剩下一个日志文件如下:
RESET MASTER; -- 清空语句
这时我们创建一个库binlogtest,并创建一个表table_01,并在表中插入一条数据如下:
这是我们可以使用命令flush logs;用来生成一个新的日志文件mysql-bin.000002
现在我们直接删库,如下可以看到库已被删除
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec)
准备恢复,执行语句:
// 先查看对应的mysql容器 [root@adobe1 data]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 372953fef56a mysql:5.7 "docker-entrypoint.s…" 32 minutes ago Up 32 minutes 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp mysql_master // 进入容器 [root@adobe1 data]# docker exec -it 372953fef56a bash // 进入日志目录 root@mysql-master:/# cd /var/lib/mysql root@mysql-master:/var/lib/mysql# ls auto.cnf client-cert.pem ib_logfile1 mysql-bin.000001 private_key.pem sys binlogtest client-key.pem ibdata1 mysql-bin.000002 public_key.pem ca-key.pem ib_buffer_pool ibtmp1 mysql-bin.index server-cert.pem ca.pem ib_logfile0 mysql performance_schema server-key.pem // 执行恢复语句 root@mysql-master:/var/lib/mysql# mysqlbinlog --no-defaults ./mysql-bin.000001 |mysql -uroot -p Enter password: // 恢复完成 root@mysql-master:/var/lib/mysql#
此时我们在此查看库以及数据有没有恢复:
是不是很棒,当然也可以通过具体位置恢复或者具体时间恢复语句如下:
恢复指定位置数据 mysqlbinlog ‐‐no‐defaults ‐‐start‐position="408" ‐‐stop‐position="731"./mysql‐bin.000001 |mysql ‐uroot ‐p tuling (数据库) 恢复指定时间段数据 mysqlbinlog ‐‐no‐defaults ./mysql‐bin.000001 ‐‐stop‐date="2018‐03‐02 12:00:00" ‐‐start‐date="2019‐03‐02 11:55:00" | mysql ‐uroot ‐p test(数据库)
可以自行去试一下。
当然我们数据库内容可能很大,所以我们想要完善binlog的话,我们可以定时将我们的日志归档,便于后期恢复。主要控制权限,别被删库的家伙把binlog也删了,那耶稣来了也就不了你了。
-
Windows上MySQL开启Binlog日志以及如何查看
2021-03-14 20:31:26MySQL的Binlog日志内容量巨大,这里就不赘述了,后面有时间会做专门的关于MySQL的Binlog日志的总结,不过我们也得知道Binlog日志是干啥的。 一、Binlog日志 1.什么是Binlog日志? binlog是记录所有数据库表结构变更... -
windows环境mysql开启binlog日志方法
2018-12-20 13:29:18进入mysql C:\Users\hcf> mysql -uroot -p123456 查看binlog mysql> show binary logs; ERROR 开始配置 在myslq的安装目录下,找到my.ini 在mysqld下面添加 server_id=1918 log_bin = ... -
Mysql开启binlog日志
2020-11-13 16:54:09Mysql安全设置—开启binlog日志 binlog介绍: binlog是二进制文件; binlog记录了数据库的所有dml操作; 通过binlog日志可以进行数据恢复操作; binlog配置: 修改my.cnf数据库的配置文件,配置binlog; 重启mysql... -
CentOS 7 mysql 开启binlog日志配置
2022-05-04 22:35:28后来就先把密码端口改了,然后配置一下binlog日志以防万一,在此记录一下配置,方便下次查阅。 ps:改完配置要重启mysql服务,没报错就是开启了。 # For advice on how to change settings please see # ... -
mysql开启binlog步骤讲解
2020-12-16 15:35:29binlog是二进制日志文件,用于记录mysql的数据变更,数据在恢复的时候binlog日志能起到很大的作用。mysql的主从复制就是利用的binlog原理 1、登录mysql之后使用下面的命令查看是否开启binlog show variables like ... -
开启MySQL的binlog日志
2022-03-03 09:40:53binlog 就是binary log,二进制日志文件,这个...那么,如何开启mysql的binlog日志呢? 在my.inf主配置文件中直接添加三行 log_bin=ON log_bin_basename=/var/lib/mysql/mysql-bin log_bin_index=/var/lib/mysql/mysql -
Mac brew install MySQL 开启binlog日志
2021-01-19 07:39:32sudo vi /usr/local/etc/my.cnf //添加内容如下:[mysqld]#log_binlog-bin = mysql-bin #开启binlogbinlog-format = ROW #选择row模式server_id = 1 #配置mysql replication需要定义,不能和canal的slaveId重复mysql... -
Linux中MySQL5.7开启binlog日志
2022-04-04 22:25:11二进制日志文件(binary log)简称:binlog,这个文件记录了MySQL所有的DML(增删改查)操作。通过binlog日志,可以做数据恢复、主从复制等。 -
windows mysql5.7 开启binlog日志
2022-04-07 18:41:041、查询binlog日志是否开启 show variables like '%log_bin%' 下图所示就是未开启 2、修改C:\ProgramData\MySQL\MySQL Server 5.7\my.ini 增加下面两行 3、重启mysql服务 4、查询 下图所示表示已开启 -
windows下mysql开启binlog日志及利用binlog日志恢复数据笔记
2018-09-26 19:13:271、开启binlog日志。 找到mysql安装目录,打开配置文件my.ini 在[mysqld]下添加: bin-log=mysql-bin 保存后重启mysql。此时在data目录会生成mysql-bin.000001和mysql-bin.index。 注意:MySQL每次重启服务会... -
mysql 开启binlog日志,恢复误的删表、数据
2022-04-20 13:54:28mysql 开启binlog日志,恢复数据linux下开启mysql的binlog日志功能。恢复数据总结 linux下开启mysql的binlog日志功能。 1.配置mysql配置文件my.cnf。 #配置文件储存的位置 log-bin=mysql-bin #5.7以及以上版本需要... -
Mysql开启binlog日志&开启方法(默认是不开启)
2020-08-24 13:14:061. 修改文件:vim /etc/my.cnf,在 [mysqld] 下添加 ...log-bin=/var/lib/mysql/mysql-bin 然后保存 2. 重启mysql:service mysqld restart 3. 进入mysql控制台,输入:show variables like 'log_%'; 确认 -
开启MySQL的binlog日志及日志详解
2021-01-18 19:18:33Mysql的binlog日志详解mysql5.7默认是不开启binlog日志的,具体的开启方式在开启的笔记中查看。binlog开启成功之后,binlog文件的位置可以在my.inf配置文件中查看。也可以在mysql的命令行中查看。命令行查看代码如下... -
mysql开启binlog日志和慢查询日志
2021-01-19 02:04:271)首先,为什么要开启binlog日志和慢查询日志呢?binlog日志会记录下数据库的所以增删改操作,当不小心删除、清空数据,或数据库系统出错,这时候就可以使用binlog日志来还原数据库,简单来说就是一个记录备份的东西... -
MySQL5.7开启 binlog
2022-03-28 13:19:25binlog日志,即binary log,是二进制日志文件。它有两个作用,一是增量备份,即只备份新增的内容;二是用于主从复制等,即主节点维护了一个binlog日志文件,从节点从binlog中同步数据 开启步骤 1. Linux下 1.登录... -
MySQL开启binlog日志 mac系统
2019-05-01 18:03:38MySQL默认没有开启使用binlog,且mac安装默认没有my.cnf文件,因此需要自己在/etc目录下新建文件并添加相应的配置 一、可以查看本地MySQL的binlog开启情况 # 登录 mysql -uroot -p # 查询binlog开启情况 show ... -
解决MySQl开启binlog日志服务问题
2020-07-14 13:13:13出于监控MySQL中数据更新的目的,需要开启binlog,在/etc/mysql/mysql.conf.d/mysqld.cnf目录下添加以下参数: log-bin=/var/lib/mysql/mysql-bin 重启服务后发现MySQL服务启动失败,需要在/etc/mysql/mysql.... -
Mysql开启binlog日志,恢复删除的数据
2019-10-24 15:51:16binlog是二进制日志文件,用于记录mysql的数据变更,数据在恢复的时候binlog日志能起到很大的作用 1、登录mysql之后使用下面的命令查看是否开启binlog show variables like 'log_%'; 2、编辑配置文件 在myslq... -
开启mysql的binlog日志&查看$备份
2019-01-12 11:23:311、5.7版本前 ...# vi /usr/local/mysql/my.cnf log-bin=my-bin #my-bin就是bin-log文件的名字,可以根据各自情况自定义文件名 log_bin是生成的bin-log的文件名,后缀则是6位数字的编码,从000001开始,按... -
linux开启MySQL binlog日志
2018-02-07 13:45:41binlog日志,即binary log,是二进制日志文件。它有两个作用,一是增量备份,即只备份...下面就介绍一下开启MySQL binlog日志的过程:1、登录MySQL,查看binlog日志的状态 登录MySQL后,输入show variables like... -
MySQL binlog日志优化
2021-01-19 03:17:01mysql中日志类型有慢查询日志,二进制日志,错误日志,默认情况下,系统只打开错误日志,因为开启日志会产生较大的IO性能消耗。一般情况下,生成系统中很少打开二进制日志(bin log),bin log日志的优化策略:mysql&... -
MySQL5.7开启binlog日志及其他相关操作
2021-04-24 12:45:391)查看是否开启 binlog日志(默认不开启,log_bin值为OF)及日志位置 show variables like '%log_bin%'; 2)查看产生的 日志文件。 show binary logs; 3)查看当前使用的日志文件,即记录操作的...