GTID是基于mysql事务实现的,如果对mysql事务没啥概念的话,建议先看看
不在单独说明如何搭建mysql单点 请参考
然后再看这个gtid的
https://www.hi-linux.com/posts/47176.html
现在有这样一个需求:
主1mysql 是个单点的mysql库,库里有很多数据,想给主1增加个从库,并且使用gtid
具体操作可以在https://www.hi-linux.com/posts/47176.html 里寻找
思路如下:
1.备份主1的数据或者拿主1最新的备份(主1已经开启gtid)
通过配置文件my.cnf 开启gtid gtid-mode = ON enforce-gtid-consistency = ON log-slave-updates = ON 在线开启gtid 不用重启 mysql> set global gtid_mode='OFF_PERMISSIVE'; Query OK, 0 rows affected (0.01 sec) mysql> set global gtid_mode='ON_PERMISSIVE'; Query OK, 0 rows affected (0.01 sec) mysql> set global enforce_gtid_consistency=ON; Query OK, 0 rows affected (0.00 sec) mysql> set global gtid_mode='ON'; Query OK, 0 rows affected (0.00 sec) 查看主库与从库的GTID是否开启 mysql> show variables like "%gtid%"; +----------------------------------+-----------+ | Variable_name | Value | +----------------------------------+-----------+ | binlog_gtid_simple_recovery | ON | | enforce_gtid_consistency | ON | | gtid_executed_compression_period | 1000 | | gtid_mode | ON | | gtid_next | AUTOMATIC | | gtid_owned | | | gtid_purged | | | session_track_gtids | OFF | +----------------------------------+-----------+ 8 rows in set (0.00 sec) mysql> show variables like '%gtid_next%'; +---------------+-----------+ | Variable_name | Value | +---------------+-----------+ | gtid_next | AUTOMATIC | +---------------+-----------+ 1 row in set (0.00 sec) 备份常用指令 /usr/local/mysql/bin/mysqldump --all-databases --single-transaction --master-data=2 --set-gtid-purged=off -F --triggers --routines --events --user=root -p --socket=/data/mysql3306/logs/mysql.sock > all111_0423.sql