MySQL复制:暂时阻止特定的SQL语句复制到从属服务器?
为此,您需要将sql_log_bin设置为0。为了理解这一概念,让我们创建一个表。创建表的查询如下
mysql> create table SQLStatementsDemo -> ( -> UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY, -> UserName varchar(20) -> );
使用insert命令在表中插入一些记录。查询如下-
mysql> insert into SQLStatementsDemo(UserName) values('John');
mysql> insert into SQLStatementsDemo(UserName) values('Carol');
mysql> insert into SQLStatementsDemo(UserName) values('Bob');
mysql> insert into SQLStatementsDemo(UserName) values('Mike');
mysql> insert into SQLStatementsDemo(UserName) values('Sam');
mysql> insert into SQLStatementsDemo(UserName) values('David');使用select语句显示表中的所有记录。查询如下-
mysql> select *from SQLStatementsDemo;
以下是输出
+--------+----------+ | UserId | UserName | +--------+----------+ | 1 | John | | 2 | Carol | | 3 | Bob | | 4 | Mike | | 5 | Sam | | 6 | David | +--------+----------+ 6 rows in set (0.00 sec)
这是为SQL语句实现MySQL复制的查询
mysql> SET sql_log_bin=0;
mysql> update SQLStatementsDemo set UserName='Maxwell' where UserId=6;
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select *from SQLStatementsDemo;
+--------+----------+
| UserId | UserName |
+--------+----------+
| 1 | John |
| 2 | Carol |
| 3 | Bob |
| 4 | Mike |
| 5 | Sam |
| 6 | Maxwell |
+--------+----------+
6 rows in set (0.00 sec)
mysql> insert into SQLStatementsDemo(UserName) values('Chris');
mysql> select *from SQLStatementsDemo;
+--------+----------+
| UserId | UserName |
+--------+----------+
| 1 | John |
| 2 | Carol |
| 3 | Bob |
| 4 | Mike |
| 5 | Sam |
| 6 | Maxwell |
| 7 | Chris |
+--------+----------+
7 rows in set (0.00 sec)
mysql> delete from SQLStatementsDemo where UserId=7;
mysql> SET sql_log_bin=1 ;