mysql 主从热备(在主从数据不一致情况下)
1.grant slave 都没有;'严重错误'
GRANT REPLICATION SLAVE ON *.* TO slave@'172.16.8.%' IDENTIFIED BY '********88';
2.锁住表,进行备份;'一定要仔细'
>flush tables with read lock;
3.本地备份:
/mysqldump -uroot -proot --all-databases >/data/backup-all.sql
4.记录master 状态:
>show master status\G;
mysql> show master status;
+------------------+----------+----------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+----------------+------------------+-------------------+
| mysql-bin.000011 | 2253254 | juxinli_credit | mysql
5.解除锁定;
> unlock tables;
6.将本地备份文件传递给从机;
scp backup-all.sql ubuntu@172.16.8.92:/home/ubuntu/
7.从机恢复数据库
./mysql -uroot -p < /home/ubuntu/backup-all.sql
8.从机mysql 设置
>change master to master_host='172.16.56.82',master_user='slave',master_password='*****88',master_port=3306,master_log_file='mysql-bin.000011',master_log_pos=2253254;
9.启动slave;
START SLAVE;
10.检查slave 启动状态
>show slave status\G;
报错问题诊断:
1.一定要仔细,特别第8步,master_log_file 是否正确
2.通过show slave status 确定问题原因
3,查看error.log(默认在数据库data目录下) 是很有帮助的,能够准确锁定问题原因,针对报错信息一步步修改
附上:
master 的my.cnf:
#----------------------------------------------------------
server-id=11
#log_bin=/data/mysql/mysql-bin
binlog_do_db=juxinli_credit
binlog_ignore_db=mysql
#复制的模式
#binlog_format="STATEMENT"
#binlog_format="ROW"
binlog_format="MIXED"
#----------------------------------------------------------
#结束 配置双机热备
#max_connections=16384
#日志文件配置:
#配置二进制日志文件
log_bin=/data/mysql/mysql-bin.log
#配置普通日志文件
general_log=on
general_log_file =/var/log/mysql/mysql.log
#配置错误输出日志文件/更改默认data 目录
log-error=/var/log/mysql/mysql-error.log
#配置慢查询日志文件
#slow_query_log=on??
#slow_query_log_file=/var/log/mysql/slow-query.log
slave 的my.cnf:
#1.表示打开日志;
#general_log =1
server-id=13
replicate-do-db=juxinli_credit
replicate-ignore-db=mysql
#slave-skip-erros=1062
binlog_format="MIXED"
#配置从服务器二进制日志文件
relay-log=/var/log/mysql/mysql-slave-relay-bin.log
relay-log-index=/var/log/mysql/mysql-relay-log-bin.index
(如果修改了目录,还要删除默认data 目录下的相关relay-bin.log)再重启mysql
#配置普通日志文件
general_log=on
general_log_file =/var/log/mysql/mysql.log
#配置错误输出日志文件
log-error=/var/log/mysql/mysql-error.log
#配置慢查询日志文件
slow_query_log=on??
slow_query_log_file=/var/log/mysql/slow-query.log
====================================希望对你有所帮助=====================