记录一次MYSQL主从同步重置
线上数据库从库挂掉,所以重新安装并重新同步
线上数据库从库挂掉,所以重新安装并重新同步
- 登录主库
登录主库,输入以下命令并输入密码
$ mysql -u root -p- 锁表
锁表后数据库不能写入数据,操作需谨慎。
$ FLUSH TABLES WITH READ LOCK;- 备份全部数据库
退出登录并导出全部的数据库,同时压缩一下便于传输。
$ mysqldump -u root -p --all-databases > bak.sql | gzip > bak.sql.gz- 查看主库Binlog文件和位置
登录主库并查看信息
$ mysql -u root -p$ show master status;显示信息如下
+---------------+----------+--------------+------------------+-------------------+| File | | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |+---------------+----------+--------------+------------------+-------------------+| binlog.000024 | 11632560 | | | |+---------------+----------+--------------+------------------+-------------------+1 row in set (0.01 sec)- 主库解锁
$ UNLOCK TABLES;- 传输备份文件并解压
gunzip bak.sql.gz- 恢复数据
重新安装从库,并恢复数据
$ mysql -u root -p < bak.sql- 登录从库并开启从库同步
主库IP是 198.168.0.2, 同步用户是zqyu_rpl, 密码是123456, MASTER_LOG_FILE 和 MASTER_LOG_POS 是主库中使用 show master status;查看到的信息。
$ CHANGE MASTER TO MASTER_HOST='198.168.0.2', MASTER_USER='zqyu_rpl', MASTER_PASSWORD='123456',MASTER_LOG_FILE='binlog.000024', MASTER_LOG_POS=11632560;- 开启从库同步
start slave;使用下面命令查看从库同步状态
show slave status\G;确认属性如下即可
Slave_IO_Running: Yes # 或者 Connecting Slave_SQL_Running: Yes
- 其它命令
重置从库同步的命令
$ stop slave; # 停止从库同步$ reset slave; # 重置$ start slave; # 开启- Docker中安装MySQL - 使用 Docker 安装 MySQL 的完整步骤
- MySQL主从复制配置 - MySQL 主从复制完整配置步骤
- MySQL定时备份 - MySQL 数据库定时备份脚本
- 利用Docker恢复MySQL - 使用 Docker 恢复旧服务器 MySQL 数据