310 lines
7.3 KiB
Plaintext
310 lines
7.3 KiB
Plaintext
include/master-slave.inc
|
|
Warnings:
|
|
Note #### Sending passwords in plain text without SSL/TLS is extremely insecure.
|
|
Note #### Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START SLAVE; see the 'START SLAVE Syntax' in the MySQL Manual for more information.
|
|
[connection master]
|
|
include/sync_slave_sql_with_master.inc
|
|
reset master;
|
|
include/stop_slave.inc
|
|
RESET MASTER;
|
|
include/start_slave.inc
|
|
create table t1(n char(30)) CHARACTER SET latin1;
|
|
set @i1:=12345678901234, @i2:=-12345678901234, @i3:=0, @i4:=-1;
|
|
set @s1:='This is a test', @r1:=12.5, @r2:=-12.5;
|
|
set @n1:=null;
|
|
set @s2:='', @s3:='abc\'def', @s4:= 'abc\\def', @s5:= 'abc''def';
|
|
insert into t1 values (@i1), (@i2), (@i3), (@i4);
|
|
insert into t1 values (@r1), (@r2);
|
|
insert into t1 values (@s1), (@s2), (@s3), (@s4), (@s5);
|
|
insert into t1 values (@n1);
|
|
insert into t1 values (@n2);
|
|
insert into t1 values (@a:=0), (@a:=@a+1), (@a:=@a+1);
|
|
Warnings:
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
insert into t1 values (@a+(@b:=@a+1));
|
|
Warnings:
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
set @q:='abc';
|
|
insert t1 values (@q), (@q:=concat(@q, 'n1')), (@q:=concat(@q, 'n2'));
|
|
Warnings:
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
set @a:=5;
|
|
insert into t1 values (@a),(@a);
|
|
select * from t1 where n = '<nonexistant>';
|
|
n
|
|
insert into t1 values (@a),(@a),(@a*5);
|
|
SELECT * FROM t1 ORDER BY n;
|
|
n
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
|
|
-1
|
|
-12.5
|
|
-12345678901234
|
|
0
|
|
0
|
|
1
|
|
12.5
|
|
12345678901234
|
|
2
|
|
5
|
|
5
|
|
5
|
|
abc
|
|
abc'def
|
|
abc'def
|
|
abcn1
|
|
abcn1n2
|
|
abc\def
|
|
This is a test
|
|
include/sync_slave_sql_with_master.inc
|
|
SELECT * FROM t1 ORDER BY n;
|
|
n
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
NULL
|
|
|
|
-1
|
|
-12.5
|
|
-12345678901234
|
|
0
|
|
0
|
|
1
|
|
12.5
|
|
12345678901234
|
|
2
|
|
5
|
|
5
|
|
5
|
|
abc
|
|
abc'def
|
|
abc'def
|
|
abcn1
|
|
abcn1n2
|
|
abc\def
|
|
This is a test
|
|
insert into t1 select * FROM (select @var1 union select @var2) AS t2;
|
|
drop table t1;
|
|
End of 4.1 tests.
|
|
DROP TABLE IF EXISTS t20;
|
|
DROP TABLE IF EXISTS t21;
|
|
DROP PROCEDURE IF EXISTS test.insert;
|
|
CREATE TABLE t20 (a VARCHAR(20));
|
|
CREATE TABLE t21 (a VARCHAR(20));
|
|
CREATE PROCEDURE test.insert()
|
|
BEGIN
|
|
IF (@VAR)
|
|
THEN
|
|
INSERT INTO test.t20 VALUES ('SP_TRUE');
|
|
ELSE
|
|
INSERT INTO test.t20 VALUES ('SP_FALSE');
|
|
END IF;
|
|
END|
|
|
CREATE TRIGGER test.insert_bi BEFORE INSERT
|
|
ON test.t20 FOR EACH ROW
|
|
BEGIN
|
|
IF (@VAR)
|
|
THEN
|
|
INSERT INTO test.t21 VALUES ('TRIG_TRUE');
|
|
ELSE
|
|
INSERT INTO test.t21 VALUES ('TRIG_FALSE');
|
|
END IF;
|
|
END|
|
|
include/sync_slave_sql_with_master.inc
|
|
SET @VAR=0;
|
|
CALL test.insert();
|
|
SET @VAR=1;
|
|
CALL test.insert();
|
|
On master: Check the tables for correct data
|
|
SELECT * FROM t20;
|
|
a
|
|
SP_FALSE
|
|
SP_TRUE
|
|
SELECT * FROM t21;
|
|
a
|
|
TRIG_FALSE
|
|
TRIG_TRUE
|
|
include/sync_slave_sql_with_master.inc
|
|
On slave: Check the tables for correct data and it matches master
|
|
SELECT * FROM t20;
|
|
a
|
|
SP_FALSE
|
|
SP_TRUE
|
|
SELECT * FROM t21;
|
|
a
|
|
TRIG_FALSE
|
|
TRIG_TRUE
|
|
DROP TABLE t20;
|
|
DROP TABLE t21;
|
|
DROP PROCEDURE test.insert;
|
|
DROP TABLE IF EXISTS t1;
|
|
DROP FUNCTION IF EXISTS test.square;
|
|
CREATE TABLE t1 (i INT);
|
|
CREATE FUNCTION test.square() RETURNS INTEGER DETERMINISTIC RETURN
|
|
(@var * @var);
|
|
SET @var = 1;
|
|
INSERT INTO t1 VALUES (square());
|
|
SET @var = 2;
|
|
INSERT INTO t1 VALUES (square());
|
|
SET @var = 3;
|
|
INSERT INTO t1 VALUES (square());
|
|
SET @var = 4;
|
|
INSERT INTO t1 VALUES (square());
|
|
SET @var = 5;
|
|
INSERT INTO t1 VALUES (square());
|
|
On master: Retrieve the values from the table
|
|
SELECT * FROM t1;
|
|
i
|
|
1
|
|
4
|
|
9
|
|
16
|
|
25
|
|
include/sync_slave_sql_with_master.inc
|
|
On slave: Retrieve the values from the table and verify they are the same as on master
|
|
SELECT * FROM t1;
|
|
i
|
|
1
|
|
4
|
|
9
|
|
16
|
|
25
|
|
DROP TABLE t1;
|
|
DROP FUNCTION test.square;
|
|
DROP TABLE IF EXISTS t1;
|
|
DROP FUNCTION IF EXISTS f1;
|
|
DROP FUNCTION IF EXISTS f2;
|
|
CREATE TABLE t1(a int);
|
|
CREATE FUNCTION f1() returns int deterministic BEGIN
|
|
return @a;
|
|
END |
|
|
CREATE FUNCTION f2() returns int deterministic BEGIN
|
|
IF (@b > 0) then
|
|
SET @c = (@a + @b);
|
|
else
|
|
SET @c = (@a - 1);
|
|
END if;
|
|
return @c;
|
|
END |
|
|
include/sync_slave_sql_with_master.inc
|
|
SET @a=500;
|
|
INSERT INTO t1 values(f1());
|
|
SET @b = 125;
|
|
SET @c = 1;
|
|
INSERT INTO t1 values(f2());
|
|
On master: Retrieve the values from the table
|
|
include/sync_slave_sql_with_master.inc
|
|
SELECT * from t1;
|
|
a
|
|
500
|
|
625
|
|
On slave: Check the tables for correct data and it matches master
|
|
SELECT * from t1;
|
|
a
|
|
500
|
|
625
|
|
DROP TABLE t1;
|
|
DROP FUNCTION f1;
|
|
DROP FUNCTION f2;
|
|
DROP TABLE IF EXISTS t1;
|
|
DROP TABLE IF EXISTS t2;
|
|
CREATE TABLE t1 (i int);
|
|
CREATE TABLE t2 (k int);
|
|
CREATE trigger t1_bi before INSERT on t1 for each row BEGIN
|
|
INSERT INTO t2 values (@a);
|
|
SET @a:=42;
|
|
INSERT INTO t2 values (@a);
|
|
END |
|
|
include/sync_slave_sql_with_master.inc
|
|
SET @a:=100;
|
|
INSERT INTO t1 values (5);
|
|
On master: Check to see that data was inserted correctly in both tables
|
|
SELECT * from t1;
|
|
i
|
|
5
|
|
SELECT * from t2;
|
|
k
|
|
100
|
|
42
|
|
include/sync_slave_sql_with_master.inc
|
|
On slave: Check the tables for correct data and it matches master
|
|
SELECT * from t1;
|
|
i
|
|
5
|
|
SELECT * from t2;
|
|
k
|
|
100
|
|
42
|
|
drop table t1, t2;
|
|
create table t1(a int, b int);
|
|
prepare s1 from 'insert into t1 values (@x:=@x+1, ?)';
|
|
Warnings:
|
|
Warning 1287 Setting user variables within expressions is deprecated and will be removed in a future release. Consider alternatives: 'SET variable=expression, ...', or 'SELECT expression(s) INTO variables(s)'.
|
|
set @x=1;
|
|
execute s1 using @x;
|
|
select * from t1;
|
|
a b
|
|
2 1
|
|
include/sync_slave_sql_with_master.inc
|
|
select * from t1;
|
|
a b
|
|
2 1
|
|
drop table t1;
|
|
create table t1(a int);
|
|
insert into t1 values (1),(2);
|
|
prepare s1 from 'insert into t1 select a from t1 limit ?';
|
|
set @x='1.1';
|
|
execute s1 using @x;
|
|
select * from t1;
|
|
a
|
|
1
|
|
2
|
|
1
|
|
include/sync_slave_sql_with_master.inc
|
|
select * from t1;
|
|
a
|
|
1
|
|
2
|
|
1
|
|
drop table t1;
|
|
End of 5.0 tests.
|
|
DROP FUNCTION IF EXISTS f1;
|
|
DROP FUNCTION IF EXISTS f2;
|
|
CREATE TABLE t1 (i INT);
|
|
CREATE FUNCTION f1() RETURNS INT RETURN @a;
|
|
CREATE
|
|
FUNCTION f2() RETURNS INT BEGIN
|
|
INSERT INTO t1 VALUES (10 + @a);
|
|
RETURN 0;
|
|
END|
|
|
include/sync_slave_sql_with_master.inc
|
|
SET @a:=123;
|
|
SELECT f1(), f2();
|
|
f1() f2()
|
|
123 0
|
|
On master: Check to see that data was inserted correctly
|
|
INSERT INTO t1 VALUES(f1());
|
|
SELECT * FROM t1;
|
|
i
|
|
133
|
|
123
|
|
include/sync_slave_sql_with_master.inc
|
|
On slave: Check the table for correct data and it matches master
|
|
SELECT * FROM t1;
|
|
i
|
|
133
|
|
123
|
|
DROP FUNCTION f1;
|
|
DROP FUNCTION f2;
|
|
DROP TABLE t1;
|
|
include/sync_slave_sql_with_master.inc
|
|
include/rpl_end.inc
|