使用mysql自带备份与恢复命令
备份指定数据库
mysqldump -u账号 -p密码 数据库名称 > E://example.sql
备份所有数据库
mysqldump -u账号 -p密码 --all-databases > E://example.sql
远程备份
mysqldump -u账号 -p密码 -P端口 数据库名称 > E://example.sql
mysqlddump命令详情参考:https://www.cnblogs.com/chenmh/p/5300370.html
修改my.ini文件
log-output=FILE #日志输出级别TABEL、FILE
general-log=1 #是否输出日志
general_log_file="E://DESKTOP-0Q5G0GS.log" #日志文件位置
log-bin="logbin" #二进制日志文件位置:/var/lib/mysql下
log_bin_trust_function_creators=1 #是否生成二进制文件
数据恢复:
命令行登录mysql
mysql -u用户名 -p密码
source sql文件
mysqlbinlog --start-position=137(开始位置) --stop-position=1200(结束位置) E://logbin.000001(logbin文件) | mysql -u用户名 -p密码
#此命令执行logbin文件指定位置sql日志,开始位置可用show master status输出结果展示
主从备份
从库读取因操作主库而产生的二进制日志文件,得到sql命令,并执行此sql命令
1、修改主库配置文件my.cnf
[mysqld]
server-id=10
log-bin=mysql-bin
log_bin_trust_function_creators=1
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
2、在主库创建从库访问用户
grant all privileges on *.* to 'slave'@'192.168.199.133' identified by 'slave' with grant option; flush privileges;
3、修改从库配置文件my.cnf
[mysqld]
server-id=20
!includedir /etc/mysql/conf.d/
!includedir /etc/mys
4、从库执行命令
stop slave
change master to master_host=’ip’,master_port=port, master_user=’username’, master_password=’password’, master_log_file=’log_file_name’;
start slave;