当我们在MySQL数据库中使用GTID复制时,可以使用以下步骤:
1. 确认主服务器上gtid_mode已经配置为ON
在主服务器上执行以下语句可以确认gtid_mode已经被开启:
SHOW VARIABLES LIKE 'gtid_mode';
如果gtid_mode值为OFF,则需要更新MySQL配置文件,将以下行添加到MySQL配置文件中:
[mysqld]
gtid_mode = ON
重启MySQL以使更改生效。
2. 创建具有复制权限的用户
在主服务器上创建具有复制权限的用户。
CREATE USER replication_user IDENTIFIED BY 'my_password';
GRANT REPLICATION SLAVE ON *.* TO replication_user;
其中my_password是您选择的复制用户的密码。
3. 在主服务器上记录当前复制位置
在主服务器上使用以下语句记录当前复制位置:
SELECT @@GLOBAL.gtid_executed;
记录查询结果的值,它将用于作为从服务器上的同步起点。
4. 配置从服务器
在从服务器上运行以下语句,告诉从服务器连接主服务器:
CHANGE MASTER TO MASTER_HOST='master_host_name',
MASTER_USER='replication_user',
MASTER_PASSWORD='my_password',
MASTER_CONNECT_RETRY=10,
MASTER_AUTO_POSITION=1;
其中,master_host_name是主服务器的IP地址或主机名。确保连接主服务器的端口被打开,以便从服务器可以访问主服务器。
可以使用以下命令来启动从服务器的GTID复制:
START SLAVE;
示例1
以下示例是在主服务器上创建一个新的数据库和表,并向表添加一些数据:
CREATE DATABASE testDB;
USE testDB;
CREATE TABLE myTable (id INT PRIMARY KEY, name VARCHAR(25));
INSERT INTO myTable VALUES (1, 'John'), (2, 'Doe');
现在我们来检查当前复制位置:
SELECT @@GLOBAL.gtid_executed;
得到的结果为:
8587b2f6-c281-11eb-9995-4ccc6a430f90:1-3
现在配置从服务器,并启动GTID复制:
CHANGE MASTER TO MASTER_HOST='master_server_1',
MASTER_USER='replication_user',
MASTER_PASSWORD='my_password',
MASTER_CONNECT_RETRY=10,
MASTER_AUTO_POSITION=1;
START SLAVE;
现在,我们使用以下语句在主服务器上更新表的数据:
USE testDB;
UPDATE myTable SET name='Doe Jr.' WHERE id=2;
检查从服务器是否复制了这个更新:
USE testDB;
SELECT * FROM myTable;
从服务器应该在myTable表中执行了更新。
示例2
以下示例演示了使用GTID复制从一台主服务器复制到第二个主服务器的过程:
在第一个主服务器上创建数据库和表并添加数据:
CREATE DATABASE testDB;
USE testDB;
CREATE TABLE myTable (id INT PRIMARY KEY, name VARCHAR(25));
INSERT INTO myTable VALUES (1, 'John'), (2, 'Doe');
现在在从第一个主服务器复制到第二个主服务器:
CHANGE MASTER TO MASTER_HOST='master_server_1',
MASTER_USER='replication_user',
MASTER_PASSWORD='my_password',
MASTER_PORT=3306,
MASTER_AUTO_POSITION=1;
START SLAVE;
现在在第一个主服务器上进行一些更新:
USE testDB;
UPDATE myTable SET name='Doe Jr.' WHERE id=2;
我们现在可以使用以下语句检查第二个主服务器是否成功复制:
USE testDB;
SELECT * FROM myTable;
第二个主服务器上的myTable表应该反映出更新。
这就是使用GTID复制进行MySQL复制的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL复制之GTID复制的具体使用 - Python技术站