mysql主从复制原理
环境:
3306 主库
3307 从库
1 设置server-id值并开启binlog功能参数
编辑mysql的配置文件/data/3306/my.cnf
[mysqld]
server-id = 6 ----用于同步的每台机器或实例sever-id都不能相同
log_bin =/data/3306/mysql-bin ----可以省略
重启服务
/data/3306/mysql restart
检查思路一
[root@db02 data]# egrep "log_bin|server-id" 330*/my.cnf
3306/my.cnf:log_bin = /data/3306/mysql-bin
3306/my.cnf:server-id = 6
3307/my.cnf:server-id = 7
检查思路二:
检查思路2:
登录:
[root@db02 data]# mysql -S /data/3306/mysql.sock
查看变量:
mysql> show variables like 'log_bin%';
+---------------------------------+----------------------------+
| Variable_name | Value |
+---------------------------------+----------------------------+
| log_bin | ON |
| log_bin_basename | /data/3306/mysql-bin |
| log_bin_index | /data/3306/mysql-bin.index |
| log_bin_trust_function_creators | OFF |
| log_bin_use_v1_row_events | OFF |
+---------------------------------+----------------------------+
5 rows in set (0.00 sec)
2 建账号授权【主库】
grant replication slave on *.* to 'rep'@'172.16.1.%' identified by 'oldboy123';
flush privileges;
3锁表导出数据
mysql> flush table with read lock;
Query OK, 0 rows affected (0.00 sec)
查看位置:
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 405 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
新开窗口备份:
mysqldump -uroot -p'oldboy123' -S /data/3306/mysql.sock -A -B |gzip >/server/backup/mysql_bak.$(date +%F).sql.gz
原窗口解锁:
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 405 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
mysql> unlock tables;
Query OK, 0 rows affected (0.01 sec)
如下命令可替代3的所有步骤
mysqldump -uroot -p'oldboy123' --master-data=2 -S /data/3306/mysql.sock -A -B
4、将数据导入到从库
[root@db02 backup]# mysql -S /data/3307/mysql.sock <mysql_bak.2017-05-04.sql
5、让从库从主库锁表时刻记录的binlog位置点开始向下同步
CHANGE MASTER TO
MASTER_HOST='172.16.1.52',
MASTER_PORT=3306,
MASTER_USER='rep',
MASTER_PASSWORD='oldboy123',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=405;
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341