mysql 主从不一致的解决办法
操作主数据库
千万不要关闭终端!!!
千万不要关闭终端!!!
千万不要关闭终端!!!
因为要在终端中为所有表加只读锁;如果关闭终端,会自动解除锁。
1### 登录主数据的 mysql
2[root@jyzbdb1 app]# mysql -ucopote_admin -p'Copote1258!@%*'
3
4### 锁定数据库所有的表
5mysql> flush tables with read lock;
6
7### 记录主库状态
8mysql> show master status;
9+------------------+-----------+--------------+------------------+-------------------+
10| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
11+------------------+-----------+--------------+------------------+-------------------+
12| mysql-bin.001018 | 424012472 | | | |
13+------------------+-----------+--------------+------------------+-------------------+
另起一个终端:
1### 备份数据
2[root@jyzbdb1 app]# mysqldump --no-defaults --socket /app/soft/mysql/mysql.sock -ucopote_admin -p'Copote1258!@%*' jygz -R -E > /app/jygz.sql
3
4### 复制到从服务器上
5[root@jyzbdb1 app]# scp jygz.sql root@10.1.150.35:/app/
操作从数据库
1### 登录从数据的 mysql
2[root@jyzbdb1 app]# mysql -ucopote_admin -p'Copote1258!@%*'
3
4### 停止从数据服务
5mysql> stop slave;
6
7### 进入数据库
8mysql> use jygz;
9
10### 还原数据
11mysql> source /app/jygz.sql
12
13### 设置从数据库bin-log日志
14mysql> change master to master_host = '10.1.150.34', master_user = 'backup', master_port=3306, master_password='copote1258!@%*', master_log_file = 'mysql-bin.001018', master_log_pos=424012472;
15
16### 启动从数据服务
17mysql> start slave;
18
19### 查看从数据服务的状态
20mysql> show slave status\G
21### 显示如下内容表示主从同步成功!
22Slave_IO_Running: Yes
23Slave_SQL_Running: Yes
操作主库
1### 解除锁定:
2### 直接关闭操作主数据库的终端,或者在操作主数据库的终端中运行下面的命令:
3mysql> unlock tables;
评论