MDEV-26: Global transaction ID.
Change of user interface to be more logical and more in line with expectations to work similar to old-style replication. User can now explicitly choose in CHANGE MASTER whether binlog position is taken into account (master_gtid_pos=current_pos) or not (master_gtid_pos= slave_pos) when slave connects to master. @@gtid_pos is replaced by three separate variables @@gtid_slave_pos (can be set by user, replicated GTIDs only), @@gtid_binlog_pos (read only), and @@gtid_current_pos (a combination of the two, most recent GTID within each domain). mysql.rpl_slave_state is renamed to mysql.gtid_slave_pos to match. This fixes MDEV-4474.
This commit is contained in:
parent
d795bc9ff8
commit
1cd6eb5f94
@ -60,7 +60,7 @@ if ($tmp)
|
|||||||
--echo Last_SQL_Error
|
--echo Last_SQL_Error
|
||||||
--echo Replicate_Ignore_Server_Ids
|
--echo Replicate_Ignore_Server_Ids
|
||||||
--echo Master_Server_Id #
|
--echo Master_Server_Id #
|
||||||
--echo Using_Gtid 0
|
--echo Using_Gtid No
|
||||||
}
|
}
|
||||||
if (!$tmp) {
|
if (!$tmp) {
|
||||||
# Note: after WL#5177, fields 13-18 shall not be filtered-out.
|
# Note: after WL#5177, fields 13-18 shall not be filtered-out.
|
||||||
|
@ -31,7 +31,7 @@ BEGIN
|
|||||||
AND variable_name not like "Last_IO_Err*"
|
AND variable_name not like "Last_IO_Err*"
|
||||||
AND variable_name != 'INNODB_IBUF_MAX_SIZE'
|
AND variable_name != 'INNODB_IBUF_MAX_SIZE'
|
||||||
AND variable_name != 'INNODB_USE_NATIVE_AIO'
|
AND variable_name != 'INNODB_USE_NATIVE_AIO'
|
||||||
AND variable_name != 'GTID_POS'
|
AND variable_name not like 'GTID%POS'
|
||||||
ORDER BY variable_name;
|
ORDER BY variable_name;
|
||||||
|
|
||||||
-- Dump all databases, there should be none
|
-- Dump all databases, there should be none
|
||||||
|
@ -177,7 +177,7 @@ while ($_rpl_server)
|
|||||||
if (!$rpl_skip_reset_master_and_slave)
|
if (!$rpl_skip_reset_master_and_slave)
|
||||||
{
|
{
|
||||||
RESET MASTER;
|
RESET MASTER;
|
||||||
SET GLOBAL gtid_pos= "";
|
SET GLOBAL gtid_slave_pos= "";
|
||||||
RESET SLAVE;
|
RESET SLAVE;
|
||||||
}
|
}
|
||||||
eval SET auto_increment_increment= $rpl_server_count;
|
eval SET auto_increment_increment= $rpl_server_count;
|
||||||
|
@ -13,6 +13,7 @@ db
|
|||||||
event
|
event
|
||||||
func
|
func
|
||||||
general_log
|
general_log
|
||||||
|
gtid_slave_pos
|
||||||
help_category
|
help_category
|
||||||
help_keyword
|
help_keyword
|
||||||
help_relation
|
help_relation
|
||||||
@ -24,7 +25,6 @@ plugin
|
|||||||
proc
|
proc
|
||||||
procs_priv
|
procs_priv
|
||||||
proxies_priv
|
proxies_priv
|
||||||
rpl_slave_state
|
|
||||||
servers
|
servers
|
||||||
slow_log
|
slow_log
|
||||||
table_stats
|
table_stats
|
||||||
|
@ -7,6 +7,7 @@ db
|
|||||||
event
|
event
|
||||||
func
|
func
|
||||||
general_log
|
general_log
|
||||||
|
gtid_slave_pos
|
||||||
help_category
|
help_category
|
||||||
help_keyword
|
help_keyword
|
||||||
help_relation
|
help_relation
|
||||||
@ -18,7 +19,6 @@ plugin
|
|||||||
proc
|
proc
|
||||||
procs_priv
|
procs_priv
|
||||||
proxies_priv
|
proxies_priv
|
||||||
rpl_slave_state
|
|
||||||
servers
|
servers
|
||||||
slow_log
|
slow_log
|
||||||
table_stats
|
table_stats
|
||||||
@ -45,6 +45,7 @@ db
|
|||||||
event
|
event
|
||||||
func
|
func
|
||||||
general_log
|
general_log
|
||||||
|
gtid_slave_pos
|
||||||
help_category
|
help_category
|
||||||
help_keyword
|
help_keyword
|
||||||
help_relation
|
help_relation
|
||||||
@ -56,7 +57,6 @@ plugin
|
|||||||
proc
|
proc
|
||||||
procs_priv
|
procs_priv
|
||||||
proxies_priv
|
proxies_priv
|
||||||
rpl_slave_state
|
|
||||||
servers
|
servers
|
||||||
slow_log
|
slow_log
|
||||||
table_stats
|
table_stats
|
||||||
@ -91,6 +91,7 @@ db
|
|||||||
event
|
event
|
||||||
func
|
func
|
||||||
general_log
|
general_log
|
||||||
|
gtid_slave_pos
|
||||||
help_category
|
help_category
|
||||||
help_keyword
|
help_keyword
|
||||||
help_relation
|
help_relation
|
||||||
@ -102,7 +103,6 @@ plugin
|
|||||||
proc
|
proc
|
||||||
procs_priv
|
procs_priv
|
||||||
proxies_priv
|
proxies_priv
|
||||||
rpl_slave_state
|
|
||||||
servers
|
servers
|
||||||
slow_log
|
slow_log
|
||||||
table_stats
|
table_stats
|
||||||
|
@ -88,6 +88,7 @@ db
|
|||||||
event
|
event
|
||||||
func
|
func
|
||||||
general_log
|
general_log
|
||||||
|
gtid_slave_pos
|
||||||
help_category
|
help_category
|
||||||
help_keyword
|
help_keyword
|
||||||
help_relation
|
help_relation
|
||||||
@ -98,7 +99,6 @@ plugin
|
|||||||
proc
|
proc
|
||||||
procs_priv
|
procs_priv
|
||||||
proxies_priv
|
proxies_priv
|
||||||
rpl_slave_state
|
|
||||||
servers
|
servers
|
||||||
slow_log
|
slow_log
|
||||||
t1
|
t1
|
||||||
|
@ -24,6 +24,7 @@ mysql.columns_priv OK
|
|||||||
mysql.db OK
|
mysql.db OK
|
||||||
mysql.event OK
|
mysql.event OK
|
||||||
mysql.func OK
|
mysql.func OK
|
||||||
|
mysql.gtid_slave_pos OK
|
||||||
mysql.help_category OK
|
mysql.help_category OK
|
||||||
mysql.help_keyword OK
|
mysql.help_keyword OK
|
||||||
mysql.help_relation OK
|
mysql.help_relation OK
|
||||||
@ -36,7 +37,6 @@ mysql.proc OK
|
|||||||
mysql.procs_priv OK
|
mysql.procs_priv OK
|
||||||
mysql.proxies_priv OK
|
mysql.proxies_priv OK
|
||||||
mysql.renamed_general_log OK
|
mysql.renamed_general_log OK
|
||||||
mysql.rpl_slave_state OK
|
|
||||||
mysql.servers OK
|
mysql.servers OK
|
||||||
mysql.table_stats OK
|
mysql.table_stats OK
|
||||||
mysql.tables_priv OK
|
mysql.tables_priv OK
|
||||||
|
@ -12,6 +12,7 @@ mysql.columns_priv OK
|
|||||||
mysql.db OK
|
mysql.db OK
|
||||||
mysql.event OK
|
mysql.event OK
|
||||||
mysql.func OK
|
mysql.func OK
|
||||||
|
mysql.gtid_slave_pos OK
|
||||||
mysql.help_category OK
|
mysql.help_category OK
|
||||||
mysql.help_keyword OK
|
mysql.help_keyword OK
|
||||||
mysql.help_relation OK
|
mysql.help_relation OK
|
||||||
@ -23,7 +24,6 @@ mysql.plugin OK
|
|||||||
mysql.proc OK
|
mysql.proc OK
|
||||||
mysql.procs_priv OK
|
mysql.procs_priv OK
|
||||||
mysql.proxies_priv OK
|
mysql.proxies_priv OK
|
||||||
mysql.rpl_slave_state OK
|
|
||||||
mysql.servers OK
|
mysql.servers OK
|
||||||
mysql.table_stats OK
|
mysql.table_stats OK
|
||||||
mysql.tables_priv OK
|
mysql.tables_priv OK
|
||||||
@ -53,6 +53,7 @@ mysql.columns_priv OK
|
|||||||
mysql.db OK
|
mysql.db OK
|
||||||
mysql.event OK
|
mysql.event OK
|
||||||
mysql.func OK
|
mysql.func OK
|
||||||
|
mysql.gtid_slave_pos OK
|
||||||
mysql.help_category OK
|
mysql.help_category OK
|
||||||
mysql.help_keyword OK
|
mysql.help_keyword OK
|
||||||
mysql.help_relation OK
|
mysql.help_relation OK
|
||||||
@ -64,7 +65,6 @@ mysql.plugin OK
|
|||||||
mysql.proc OK
|
mysql.proc OK
|
||||||
mysql.procs_priv OK
|
mysql.procs_priv OK
|
||||||
mysql.proxies_priv OK
|
mysql.proxies_priv OK
|
||||||
mysql.rpl_slave_state OK
|
|
||||||
mysql.servers OK
|
mysql.servers OK
|
||||||
mysql.table_stats OK
|
mysql.table_stats OK
|
||||||
mysql.tables_priv OK
|
mysql.tables_priv OK
|
||||||
@ -94,6 +94,7 @@ mysql.columns_priv OK
|
|||||||
mysql.db OK
|
mysql.db OK
|
||||||
mysql.event OK
|
mysql.event OK
|
||||||
mysql.func OK
|
mysql.func OK
|
||||||
|
mysql.gtid_slave_pos OK
|
||||||
mysql.help_category OK
|
mysql.help_category OK
|
||||||
mysql.help_keyword OK
|
mysql.help_keyword OK
|
||||||
mysql.help_relation OK
|
mysql.help_relation OK
|
||||||
@ -105,7 +106,6 @@ mysql.plugin OK
|
|||||||
mysql.proc OK
|
mysql.proc OK
|
||||||
mysql.procs_priv OK
|
mysql.procs_priv OK
|
||||||
mysql.proxies_priv OK
|
mysql.proxies_priv OK
|
||||||
mysql.rpl_slave_state OK
|
|
||||||
mysql.servers OK
|
mysql.servers OK
|
||||||
mysql.table_stats OK
|
mysql.table_stats OK
|
||||||
mysql.tables_priv OK
|
mysql.tables_priv OK
|
||||||
@ -138,6 +138,7 @@ mysql.columns_priv OK
|
|||||||
mysql.db OK
|
mysql.db OK
|
||||||
mysql.event OK
|
mysql.event OK
|
||||||
mysql.func OK
|
mysql.func OK
|
||||||
|
mysql.gtid_slave_pos OK
|
||||||
mysql.help_category OK
|
mysql.help_category OK
|
||||||
mysql.help_keyword OK
|
mysql.help_keyword OK
|
||||||
mysql.help_relation OK
|
mysql.help_relation OK
|
||||||
@ -149,7 +150,6 @@ mysql.plugin OK
|
|||||||
mysql.proc OK
|
mysql.proc OK
|
||||||
mysql.procs_priv OK
|
mysql.procs_priv OK
|
||||||
mysql.proxies_priv OK
|
mysql.proxies_priv OK
|
||||||
mysql.rpl_slave_state OK
|
|
||||||
mysql.servers OK
|
mysql.servers OK
|
||||||
mysql.table_stats OK
|
mysql.table_stats OK
|
||||||
mysql.tables_priv OK
|
mysql.tables_priv OK
|
||||||
@ -185,6 +185,7 @@ mysql.columns_priv OK
|
|||||||
mysql.db OK
|
mysql.db OK
|
||||||
mysql.event OK
|
mysql.event OK
|
||||||
mysql.func OK
|
mysql.func OK
|
||||||
|
mysql.gtid_slave_pos OK
|
||||||
mysql.help_category OK
|
mysql.help_category OK
|
||||||
mysql.help_keyword OK
|
mysql.help_keyword OK
|
||||||
mysql.help_relation OK
|
mysql.help_relation OK
|
||||||
@ -196,7 +197,6 @@ mysql.plugin OK
|
|||||||
mysql.proc OK
|
mysql.proc OK
|
||||||
mysql.procs_priv OK
|
mysql.procs_priv OK
|
||||||
mysql.proxies_priv OK
|
mysql.proxies_priv OK
|
||||||
mysql.rpl_slave_state OK
|
|
||||||
mysql.servers OK
|
mysql.servers OK
|
||||||
mysql.table_stats OK
|
mysql.table_stats OK
|
||||||
mysql.tables_priv OK
|
mysql.tables_priv OK
|
||||||
@ -235,6 +235,7 @@ mysql.columns_priv OK
|
|||||||
mysql.db OK
|
mysql.db OK
|
||||||
mysql.event OK
|
mysql.event OK
|
||||||
mysql.func OK
|
mysql.func OK
|
||||||
|
mysql.gtid_slave_pos OK
|
||||||
mysql.help_category OK
|
mysql.help_category OK
|
||||||
mysql.help_keyword OK
|
mysql.help_keyword OK
|
||||||
mysql.help_relation OK
|
mysql.help_relation OK
|
||||||
@ -246,7 +247,6 @@ mysql.plugin OK
|
|||||||
mysql.proc OK
|
mysql.proc OK
|
||||||
mysql.procs_priv OK
|
mysql.procs_priv OK
|
||||||
mysql.proxies_priv OK
|
mysql.proxies_priv OK
|
||||||
mysql.rpl_slave_state OK
|
|
||||||
mysql.servers OK
|
mysql.servers OK
|
||||||
mysql.table_stats OK
|
mysql.table_stats OK
|
||||||
mysql.tables_priv OK
|
mysql.tables_priv OK
|
||||||
@ -288,6 +288,7 @@ mysql.columns_priv OK
|
|||||||
mysql.db OK
|
mysql.db OK
|
||||||
mysql.event OK
|
mysql.event OK
|
||||||
mysql.func OK
|
mysql.func OK
|
||||||
|
mysql.gtid_slave_pos OK
|
||||||
mysql.help_category OK
|
mysql.help_category OK
|
||||||
mysql.help_keyword OK
|
mysql.help_keyword OK
|
||||||
mysql.help_relation OK
|
mysql.help_relation OK
|
||||||
@ -299,7 +300,6 @@ mysql.plugin OK
|
|||||||
mysql.proc OK
|
mysql.proc OK
|
||||||
mysql.procs_priv OK
|
mysql.procs_priv OK
|
||||||
mysql.proxies_priv OK
|
mysql.proxies_priv OK
|
||||||
mysql.rpl_slave_state OK
|
|
||||||
mysql.servers OK
|
mysql.servers OK
|
||||||
mysql.table_stats OK
|
mysql.table_stats OK
|
||||||
mysql.tables_priv OK
|
mysql.tables_priv OK
|
||||||
|
@ -14,6 +14,7 @@ mysql.columns_priv OK
|
|||||||
mysql.db OK
|
mysql.db OK
|
||||||
mysql.event OK
|
mysql.event OK
|
||||||
mysql.func OK
|
mysql.func OK
|
||||||
|
mysql.gtid_slave_pos OK
|
||||||
mysql.help_category OK
|
mysql.help_category OK
|
||||||
mysql.help_keyword OK
|
mysql.help_keyword OK
|
||||||
mysql.help_relation OK
|
mysql.help_relation OK
|
||||||
@ -25,7 +26,6 @@ mysql.plugin OK
|
|||||||
mysql.proc OK
|
mysql.proc OK
|
||||||
mysql.procs_priv OK
|
mysql.procs_priv OK
|
||||||
mysql.proxies_priv OK
|
mysql.proxies_priv OK
|
||||||
mysql.rpl_slave_state OK
|
|
||||||
mysql.servers OK
|
mysql.servers OK
|
||||||
mysql.table_stats OK
|
mysql.table_stats OK
|
||||||
mysql.tables_priv OK
|
mysql.tables_priv OK
|
||||||
|
@ -8,6 +8,7 @@ mysql.columns_priv OK
|
|||||||
mysql.db OK
|
mysql.db OK
|
||||||
mysql.event OK
|
mysql.event OK
|
||||||
mysql.func OK
|
mysql.func OK
|
||||||
|
mysql.gtid_slave_pos OK
|
||||||
mysql.help_category OK
|
mysql.help_category OK
|
||||||
mysql.help_keyword OK
|
mysql.help_keyword OK
|
||||||
mysql.help_relation OK
|
mysql.help_relation OK
|
||||||
@ -19,7 +20,6 @@ mysql.plugin OK
|
|||||||
mysql.proc OK
|
mysql.proc OK
|
||||||
mysql.procs_priv OK
|
mysql.procs_priv OK
|
||||||
mysql.proxies_priv OK
|
mysql.proxies_priv OK
|
||||||
mysql.rpl_slave_state OK
|
|
||||||
mysql.servers OK
|
mysql.servers OK
|
||||||
mysql.table_stats OK
|
mysql.table_stats OK
|
||||||
mysql.tables_priv OK
|
mysql.tables_priv OK
|
||||||
@ -36,6 +36,7 @@ mysql.columns_priv OK
|
|||||||
mysql.db OK
|
mysql.db OK
|
||||||
mysql.event OK
|
mysql.event OK
|
||||||
mysql.func OK
|
mysql.func OK
|
||||||
|
mysql.gtid_slave_pos OK
|
||||||
mysql.help_category OK
|
mysql.help_category OK
|
||||||
mysql.help_keyword OK
|
mysql.help_keyword OK
|
||||||
mysql.help_relation OK
|
mysql.help_relation OK
|
||||||
@ -47,7 +48,6 @@ mysql.plugin OK
|
|||||||
mysql.proc OK
|
mysql.proc OK
|
||||||
mysql.procs_priv OK
|
mysql.procs_priv OK
|
||||||
mysql.proxies_priv OK
|
mysql.proxies_priv OK
|
||||||
mysql.rpl_slave_state OK
|
|
||||||
mysql.servers OK
|
mysql.servers OK
|
||||||
mysql.table_stats OK
|
mysql.table_stats OK
|
||||||
mysql.tables_priv OK
|
mysql.tables_priv OK
|
||||||
@ -62,6 +62,7 @@ mysql.columns_priv OK
|
|||||||
mysql.db OK
|
mysql.db OK
|
||||||
mysql.event OK
|
mysql.event OK
|
||||||
mysql.func OK
|
mysql.func OK
|
||||||
|
mysql.gtid_slave_pos OK
|
||||||
mysql.help_category OK
|
mysql.help_category OK
|
||||||
mysql.help_keyword OK
|
mysql.help_keyword OK
|
||||||
mysql.help_relation OK
|
mysql.help_relation OK
|
||||||
@ -73,7 +74,6 @@ mysql.plugin OK
|
|||||||
mysql.proc OK
|
mysql.proc OK
|
||||||
mysql.procs_priv OK
|
mysql.procs_priv OK
|
||||||
mysql.proxies_priv OK
|
mysql.proxies_priv OK
|
||||||
mysql.rpl_slave_state OK
|
|
||||||
mysql.servers OK
|
mysql.servers OK
|
||||||
mysql.table_stats OK
|
mysql.table_stats OK
|
||||||
mysql.tables_priv OK
|
mysql.tables_priv OK
|
||||||
@ -88,6 +88,7 @@ mysql.columns_priv Table is already up to date
|
|||||||
mysql.db Table is already up to date
|
mysql.db Table is already up to date
|
||||||
mysql.event Table is already up to date
|
mysql.event Table is already up to date
|
||||||
mysql.func Table is already up to date
|
mysql.func Table is already up to date
|
||||||
|
mysql.gtid_slave_pos Table is already up to date
|
||||||
mysql.help_category Table is already up to date
|
mysql.help_category Table is already up to date
|
||||||
mysql.help_keyword Table is already up to date
|
mysql.help_keyword Table is already up to date
|
||||||
mysql.help_relation Table is already up to date
|
mysql.help_relation Table is already up to date
|
||||||
@ -99,7 +100,6 @@ mysql.plugin Table is already up to date
|
|||||||
mysql.proc Table is already up to date
|
mysql.proc Table is already up to date
|
||||||
mysql.procs_priv Table is already up to date
|
mysql.procs_priv Table is already up to date
|
||||||
mysql.proxies_priv Table is already up to date
|
mysql.proxies_priv Table is already up to date
|
||||||
mysql.rpl_slave_state Table is already up to date
|
|
||||||
mysql.servers Table is already up to date
|
mysql.servers Table is already up to date
|
||||||
mysql.table_stats Table is already up to date
|
mysql.table_stats Table is already up to date
|
||||||
mysql.tables_priv Table is already up to date
|
mysql.tables_priv Table is already up to date
|
||||||
|
@ -6,6 +6,7 @@ db
|
|||||||
event
|
event
|
||||||
func
|
func
|
||||||
general_log
|
general_log
|
||||||
|
gtid_slave_pos
|
||||||
help_category
|
help_category
|
||||||
help_keyword
|
help_keyword
|
||||||
help_relation
|
help_relation
|
||||||
@ -17,7 +18,6 @@ plugin
|
|||||||
proc
|
proc
|
||||||
procs_priv
|
procs_priv
|
||||||
proxies_priv
|
proxies_priv
|
||||||
rpl_slave_state
|
|
||||||
servers
|
servers
|
||||||
slow_log
|
slow_log
|
||||||
table_stats
|
table_stats
|
||||||
|
@ -6,6 +6,7 @@ db
|
|||||||
event
|
event
|
||||||
func
|
func
|
||||||
general_log
|
general_log
|
||||||
|
gtid_slave_pos
|
||||||
help_category
|
help_category
|
||||||
help_keyword
|
help_keyword
|
||||||
help_relation
|
help_relation
|
||||||
@ -17,7 +18,6 @@ plugin
|
|||||||
proc
|
proc
|
||||||
procs_priv
|
procs_priv
|
||||||
proxies_priv
|
proxies_priv
|
||||||
rpl_slave_state
|
|
||||||
servers
|
servers
|
||||||
slow_log
|
slow_log
|
||||||
table_stats
|
table_stats
|
||||||
|
@ -6,6 +6,7 @@ db
|
|||||||
event
|
event
|
||||||
func
|
func
|
||||||
general_log
|
general_log
|
||||||
|
gtid_slave_pos
|
||||||
help_category
|
help_category
|
||||||
help_keyword
|
help_keyword
|
||||||
help_relation
|
help_relation
|
||||||
@ -17,7 +18,6 @@ plugin
|
|||||||
proc
|
proc
|
||||||
procs_priv
|
procs_priv
|
||||||
proxies_priv
|
proxies_priv
|
||||||
rpl_slave_state
|
|
||||||
servers
|
servers
|
||||||
slow_log
|
slow_log
|
||||||
table_stats
|
table_stats
|
||||||
|
@ -6,6 +6,7 @@ db
|
|||||||
event
|
event
|
||||||
func
|
func
|
||||||
general_log
|
general_log
|
||||||
|
gtid_slave_pos
|
||||||
help_category
|
help_category
|
||||||
help_keyword
|
help_keyword
|
||||||
help_relation
|
help_relation
|
||||||
@ -17,7 +18,6 @@ plugin
|
|||||||
proc
|
proc
|
||||||
procs_priv
|
procs_priv
|
||||||
proxies_priv
|
proxies_priv
|
||||||
rpl_slave_state
|
|
||||||
servers
|
servers
|
||||||
slow_log
|
slow_log
|
||||||
table_stats
|
table_stats
|
||||||
|
@ -74,6 +74,10 @@ def mysql general_log event_time 1 CURRENT_TIMESTAMP(6) NO timestamp NULL NULL N
|
|||||||
def mysql general_log server_id 4 NULL NO int NULL NULL 10 0 NULL NULL NULL int(10) unsigned select,insert,update,references
|
def mysql general_log server_id 4 NULL NO int NULL NULL 10 0 NULL NULL NULL int(10) unsigned select,insert,update,references
|
||||||
def mysql general_log thread_id 3 NULL NO int NULL NULL 10 0 NULL NULL NULL int(11) select,insert,update,references
|
def mysql general_log thread_id 3 NULL NO int NULL NULL 10 0 NULL NULL NULL int(11) select,insert,update,references
|
||||||
def mysql general_log user_host 2 NULL NO mediumtext 16777215 16777215 NULL NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references
|
def mysql general_log user_host 2 NULL NO mediumtext 16777215 16777215 NULL NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references
|
||||||
|
def mysql gtid_slave_pos domain_id 1 NULL NO int NULL NULL 10 0 NULL NULL NULL int(10) unsigned PRI select,insert,update,references
|
||||||
|
def mysql gtid_slave_pos seq_no 4 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint(20) unsigned select,insert,update,references
|
||||||
|
def mysql gtid_slave_pos server_id 3 NULL NO int NULL NULL 10 0 NULL NULL NULL int(10) unsigned select,insert,update,references
|
||||||
|
def mysql gtid_slave_pos sub_id 2 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint(20) unsigned PRI select,insert,update,references
|
||||||
def mysql help_category help_category_id 1 NULL NO smallint NULL NULL 5 0 NULL NULL NULL smallint(5) unsigned PRI select,insert,update,references
|
def mysql help_category help_category_id 1 NULL NO smallint NULL NULL 5 0 NULL NULL NULL smallint(5) unsigned PRI select,insert,update,references
|
||||||
def mysql help_category name 2 NULL NO char 64 192 NULL NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references
|
def mysql help_category name 2 NULL NO char 64 192 NULL NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references
|
||||||
def mysql help_category parent_category_id 3 NULL YES smallint NULL NULL 5 0 NULL NULL NULL smallint(5) unsigned select,insert,update,references
|
def mysql help_category parent_category_id 3 NULL YES smallint NULL NULL 5 0 NULL NULL NULL smallint(5) unsigned select,insert,update,references
|
||||||
@ -157,10 +161,6 @@ def mysql proxies_priv Proxied_user 4 NO char 16 48 NULL NULL NULL utf8 utf8_bi
|
|||||||
def mysql proxies_priv Timestamp 7 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL 0 NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references
|
def mysql proxies_priv Timestamp 7 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL 0 NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references
|
||||||
def mysql proxies_priv User 2 NO char 16 48 NULL NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
|
def mysql proxies_priv User 2 NO char 16 48 NULL NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
|
||||||
def mysql proxies_priv With_grant 5 0 NO tinyint NULL NULL 3 0 NULL NULL NULL tinyint(1) select,insert,update,references
|
def mysql proxies_priv With_grant 5 0 NO tinyint NULL NULL 3 0 NULL NULL NULL tinyint(1) select,insert,update,references
|
||||||
def mysql rpl_slave_state domain_id 1 NULL NO int NULL NULL 10 0 NULL NULL NULL int(10) unsigned PRI select,insert,update,references
|
|
||||||
def mysql rpl_slave_state seq_no 4 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint(20) unsigned select,insert,update,references
|
|
||||||
def mysql rpl_slave_state server_id 3 NULL NO int NULL NULL 10 0 NULL NULL NULL int(10) unsigned select,insert,update,references
|
|
||||||
def mysql rpl_slave_state sub_id 2 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint(20) unsigned PRI select,insert,update,references
|
|
||||||
def mysql servers Db 3 NO char 64 192 NULL NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references
|
def mysql servers Db 3 NO char 64 192 NULL NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references
|
||||||
def mysql servers Host 2 NO char 64 192 NULL NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references
|
def mysql servers Host 2 NO char 64 192 NULL NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references
|
||||||
def mysql servers Owner 9 NO char 64 192 NULL NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references
|
def mysql servers Owner 9 NO char 64 192 NULL NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references
|
||||||
@ -393,6 +393,10 @@ NULL mysql general_log thread_id int NULL NULL NULL NULL int(11)
|
|||||||
NULL mysql general_log server_id int NULL NULL NULL NULL int(10) unsigned
|
NULL mysql general_log server_id int NULL NULL NULL NULL int(10) unsigned
|
||||||
3.0000 mysql general_log command_type varchar 64 192 utf8 utf8_general_ci varchar(64)
|
3.0000 mysql general_log command_type varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||||
1.0000 mysql general_log argument mediumtext 16777215 16777215 utf8 utf8_general_ci mediumtext
|
1.0000 mysql general_log argument mediumtext 16777215 16777215 utf8 utf8_general_ci mediumtext
|
||||||
|
NULL mysql gtid_slave_pos domain_id int NULL NULL NULL NULL int(10) unsigned
|
||||||
|
NULL mysql gtid_slave_pos sub_id bigint NULL NULL NULL NULL bigint(20) unsigned
|
||||||
|
NULL mysql gtid_slave_pos server_id int NULL NULL NULL NULL int(10) unsigned
|
||||||
|
NULL mysql gtid_slave_pos seq_no bigint NULL NULL NULL NULL bigint(20) unsigned
|
||||||
NULL mysql help_category help_category_id smallint NULL NULL NULL NULL smallint(5) unsigned
|
NULL mysql help_category help_category_id smallint NULL NULL NULL NULL smallint(5) unsigned
|
||||||
3.0000 mysql help_category name char 64 192 utf8 utf8_general_ci char(64)
|
3.0000 mysql help_category name char 64 192 utf8 utf8_general_ci char(64)
|
||||||
NULL mysql help_category parent_category_id smallint NULL NULL NULL NULL smallint(5) unsigned
|
NULL mysql help_category parent_category_id smallint NULL NULL NULL NULL smallint(5) unsigned
|
||||||
@ -476,10 +480,6 @@ NULL mysql procs_priv Timestamp timestamp NULL NULL NULL NULL timestamp
|
|||||||
NULL mysql proxies_priv With_grant tinyint NULL NULL NULL NULL tinyint(1)
|
NULL mysql proxies_priv With_grant tinyint NULL NULL NULL NULL tinyint(1)
|
||||||
3.0000 mysql proxies_priv Grantor char 77 231 utf8 utf8_bin char(77)
|
3.0000 mysql proxies_priv Grantor char 77 231 utf8 utf8_bin char(77)
|
||||||
NULL mysql proxies_priv Timestamp timestamp NULL NULL NULL NULL timestamp
|
NULL mysql proxies_priv Timestamp timestamp NULL NULL NULL NULL timestamp
|
||||||
NULL mysql rpl_slave_state domain_id int NULL NULL NULL NULL int(10) unsigned
|
|
||||||
NULL mysql rpl_slave_state sub_id bigint NULL NULL NULL NULL bigint(20) unsigned
|
|
||||||
NULL mysql rpl_slave_state server_id int NULL NULL NULL NULL int(10) unsigned
|
|
||||||
NULL mysql rpl_slave_state seq_no bigint NULL NULL NULL NULL bigint(20) unsigned
|
|
||||||
3.0000 mysql servers Server_name char 64 192 utf8 utf8_general_ci char(64)
|
3.0000 mysql servers Server_name char 64 192 utf8 utf8_general_ci char(64)
|
||||||
3.0000 mysql servers Host char 64 192 utf8 utf8_general_ci char(64)
|
3.0000 mysql servers Host char 64 192 utf8 utf8_general_ci char(64)
|
||||||
3.0000 mysql servers Db char 64 192 utf8 utf8_general_ci char(64)
|
3.0000 mysql servers Db char 64 192 utf8 utf8_general_ci char(64)
|
||||||
|
@ -74,6 +74,10 @@ def mysql general_log event_time 1 CURRENT_TIMESTAMP(6) NO timestamp NULL NULL N
|
|||||||
def mysql general_log server_id 4 NULL NO int NULL NULL 10 0 NULL NULL NULL int(10) unsigned
|
def mysql general_log server_id 4 NULL NO int NULL NULL 10 0 NULL NULL NULL int(10) unsigned
|
||||||
def mysql general_log thread_id 3 NULL NO int NULL NULL 10 0 NULL NULL NULL int(11)
|
def mysql general_log thread_id 3 NULL NO int NULL NULL 10 0 NULL NULL NULL int(11)
|
||||||
def mysql general_log user_host 2 NULL NO mediumtext 16777215 16777215 NULL NULL NULL utf8 utf8_general_ci mediumtext
|
def mysql general_log user_host 2 NULL NO mediumtext 16777215 16777215 NULL NULL NULL utf8 utf8_general_ci mediumtext
|
||||||
|
def mysql gtid_slave_pos domain_id 1 NULL NO int NULL NULL 10 0 NULL NULL NULL int(10) unsigned PRI
|
||||||
|
def mysql gtid_slave_pos seq_no 4 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint(20) unsigned
|
||||||
|
def mysql gtid_slave_pos server_id 3 NULL NO int NULL NULL 10 0 NULL NULL NULL int(10) unsigned
|
||||||
|
def mysql gtid_slave_pos sub_id 2 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint(20) unsigned PRI
|
||||||
def mysql help_category help_category_id 1 NULL NO smallint NULL NULL 5 0 NULL NULL NULL smallint(5) unsigned PRI
|
def mysql help_category help_category_id 1 NULL NO smallint NULL NULL 5 0 NULL NULL NULL smallint(5) unsigned PRI
|
||||||
def mysql help_category name 2 NULL NO char 64 192 NULL NULL NULL utf8 utf8_general_ci char(64) UNI
|
def mysql help_category name 2 NULL NO char 64 192 NULL NULL NULL utf8 utf8_general_ci char(64) UNI
|
||||||
def mysql help_category parent_category_id 3 NULL YES smallint NULL NULL 5 0 NULL NULL NULL smallint(5) unsigned
|
def mysql help_category parent_category_id 3 NULL YES smallint NULL NULL 5 0 NULL NULL NULL smallint(5) unsigned
|
||||||
@ -157,10 +161,6 @@ def mysql proxies_priv Proxied_user 4 NO char 16 48 NULL NULL NULL utf8 utf8_bi
|
|||||||
def mysql proxies_priv Timestamp 7 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL 0 NULL NULL timestamp on update CURRENT_TIMESTAMP
|
def mysql proxies_priv Timestamp 7 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL 0 NULL NULL timestamp on update CURRENT_TIMESTAMP
|
||||||
def mysql proxies_priv User 2 NO char 16 48 NULL NULL NULL utf8 utf8_bin char(16) PRI
|
def mysql proxies_priv User 2 NO char 16 48 NULL NULL NULL utf8 utf8_bin char(16) PRI
|
||||||
def mysql proxies_priv With_grant 5 0 NO tinyint NULL NULL 3 0 NULL NULL NULL tinyint(1)
|
def mysql proxies_priv With_grant 5 0 NO tinyint NULL NULL 3 0 NULL NULL NULL tinyint(1)
|
||||||
def mysql rpl_slave_state domain_id 1 NULL NO int NULL NULL 10 0 NULL NULL NULL int(10) unsigned PRI
|
|
||||||
def mysql rpl_slave_state seq_no 4 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint(20) unsigned
|
|
||||||
def mysql rpl_slave_state server_id 3 NULL NO int NULL NULL 10 0 NULL NULL NULL int(10) unsigned
|
|
||||||
def mysql rpl_slave_state sub_id 2 NULL NO bigint NULL NULL 20 0 NULL NULL NULL bigint(20) unsigned PRI
|
|
||||||
def mysql servers Db 3 NO char 64 192 NULL NULL NULL utf8 utf8_general_ci char(64)
|
def mysql servers Db 3 NO char 64 192 NULL NULL NULL utf8 utf8_general_ci char(64)
|
||||||
def mysql servers Host 2 NO char 64 192 NULL NULL NULL utf8 utf8_general_ci char(64)
|
def mysql servers Host 2 NO char 64 192 NULL NULL NULL utf8 utf8_general_ci char(64)
|
||||||
def mysql servers Owner 9 NO char 64 192 NULL NULL NULL utf8 utf8_general_ci char(64)
|
def mysql servers Owner 9 NO char 64 192 NULL NULL NULL utf8 utf8_general_ci char(64)
|
||||||
@ -393,6 +393,10 @@ NULL mysql general_log thread_id int NULL NULL NULL NULL int(11)
|
|||||||
NULL mysql general_log server_id int NULL NULL NULL NULL int(10) unsigned
|
NULL mysql general_log server_id int NULL NULL NULL NULL int(10) unsigned
|
||||||
3.0000 mysql general_log command_type varchar 64 192 utf8 utf8_general_ci varchar(64)
|
3.0000 mysql general_log command_type varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||||
1.0000 mysql general_log argument mediumtext 16777215 16777215 utf8 utf8_general_ci mediumtext
|
1.0000 mysql general_log argument mediumtext 16777215 16777215 utf8 utf8_general_ci mediumtext
|
||||||
|
NULL mysql gtid_slave_pos domain_id int NULL NULL NULL NULL int(10) unsigned
|
||||||
|
NULL mysql gtid_slave_pos sub_id bigint NULL NULL NULL NULL bigint(20) unsigned
|
||||||
|
NULL mysql gtid_slave_pos server_id int NULL NULL NULL NULL int(10) unsigned
|
||||||
|
NULL mysql gtid_slave_pos seq_no bigint NULL NULL NULL NULL bigint(20) unsigned
|
||||||
NULL mysql help_category help_category_id smallint NULL NULL NULL NULL smallint(5) unsigned
|
NULL mysql help_category help_category_id smallint NULL NULL NULL NULL smallint(5) unsigned
|
||||||
3.0000 mysql help_category name char 64 192 utf8 utf8_general_ci char(64)
|
3.0000 mysql help_category name char 64 192 utf8 utf8_general_ci char(64)
|
||||||
NULL mysql help_category parent_category_id smallint NULL NULL NULL NULL smallint(5) unsigned
|
NULL mysql help_category parent_category_id smallint NULL NULL NULL NULL smallint(5) unsigned
|
||||||
@ -476,10 +480,6 @@ NULL mysql procs_priv Timestamp timestamp NULL NULL NULL NULL timestamp
|
|||||||
NULL mysql proxies_priv With_grant tinyint NULL NULL NULL NULL tinyint(1)
|
NULL mysql proxies_priv With_grant tinyint NULL NULL NULL NULL tinyint(1)
|
||||||
3.0000 mysql proxies_priv Grantor char 77 231 utf8 utf8_bin char(77)
|
3.0000 mysql proxies_priv Grantor char 77 231 utf8 utf8_bin char(77)
|
||||||
NULL mysql proxies_priv Timestamp timestamp NULL NULL NULL NULL timestamp
|
NULL mysql proxies_priv Timestamp timestamp NULL NULL NULL NULL timestamp
|
||||||
NULL mysql rpl_slave_state domain_id int NULL NULL NULL NULL int(10) unsigned
|
|
||||||
NULL mysql rpl_slave_state sub_id bigint NULL NULL NULL NULL bigint(20) unsigned
|
|
||||||
NULL mysql rpl_slave_state server_id int NULL NULL NULL NULL int(10) unsigned
|
|
||||||
NULL mysql rpl_slave_state seq_no bigint NULL NULL NULL NULL bigint(20) unsigned
|
|
||||||
3.0000 mysql servers Server_name char 64 192 utf8 utf8_general_ci char(64)
|
3.0000 mysql servers Server_name char 64 192 utf8 utf8_general_ci char(64)
|
||||||
3.0000 mysql servers Host char 64 192 utf8 utf8_general_ci char(64)
|
3.0000 mysql servers Host char 64 192 utf8 utf8_general_ci char(64)
|
||||||
3.0000 mysql servers Db char 64 192 utf8 utf8_general_ci char(64)
|
3.0000 mysql servers Db char 64 192 utf8 utf8_general_ci char(64)
|
||||||
|
@ -89,6 +89,8 @@ def mysql PRIMARY def mysql db User
|
|||||||
def mysql PRIMARY def mysql event db
|
def mysql PRIMARY def mysql event db
|
||||||
def mysql PRIMARY def mysql event name
|
def mysql PRIMARY def mysql event name
|
||||||
def mysql PRIMARY def mysql func name
|
def mysql PRIMARY def mysql func name
|
||||||
|
def mysql PRIMARY def mysql gtid_slave_pos domain_id
|
||||||
|
def mysql PRIMARY def mysql gtid_slave_pos sub_id
|
||||||
def mysql PRIMARY def mysql help_category help_category_id
|
def mysql PRIMARY def mysql help_category help_category_id
|
||||||
def mysql name def mysql help_category name
|
def mysql name def mysql help_category name
|
||||||
def mysql PRIMARY def mysql help_keyword help_keyword_id
|
def mysql PRIMARY def mysql help_keyword help_keyword_id
|
||||||
@ -117,8 +119,6 @@ def mysql PRIMARY def mysql proxies_priv Host
|
|||||||
def mysql PRIMARY def mysql proxies_priv User
|
def mysql PRIMARY def mysql proxies_priv User
|
||||||
def mysql PRIMARY def mysql proxies_priv Proxied_host
|
def mysql PRIMARY def mysql proxies_priv Proxied_host
|
||||||
def mysql PRIMARY def mysql proxies_priv Proxied_user
|
def mysql PRIMARY def mysql proxies_priv Proxied_user
|
||||||
def mysql PRIMARY def mysql rpl_slave_state domain_id
|
|
||||||
def mysql PRIMARY def mysql rpl_slave_state sub_id
|
|
||||||
def mysql PRIMARY def mysql servers Server_name
|
def mysql PRIMARY def mysql servers Server_name
|
||||||
def mysql PRIMARY def mysql table_stats db_name
|
def mysql PRIMARY def mysql table_stats db_name
|
||||||
def mysql PRIMARY def mysql table_stats table_name
|
def mysql PRIMARY def mysql table_stats table_name
|
||||||
|
@ -100,6 +100,8 @@ def mysql db mysql User
|
|||||||
def mysql event mysql PRIMARY
|
def mysql event mysql PRIMARY
|
||||||
def mysql event mysql PRIMARY
|
def mysql event mysql PRIMARY
|
||||||
def mysql func mysql PRIMARY
|
def mysql func mysql PRIMARY
|
||||||
|
def mysql gtid_slave_pos mysql PRIMARY
|
||||||
|
def mysql gtid_slave_pos mysql PRIMARY
|
||||||
def mysql help_category mysql PRIMARY
|
def mysql help_category mysql PRIMARY
|
||||||
def mysql help_category mysql name
|
def mysql help_category mysql name
|
||||||
def mysql help_keyword mysql PRIMARY
|
def mysql help_keyword mysql PRIMARY
|
||||||
@ -130,8 +132,6 @@ def mysql proxies_priv mysql PRIMARY
|
|||||||
def mysql proxies_priv mysql PRIMARY
|
def mysql proxies_priv mysql PRIMARY
|
||||||
def mysql proxies_priv mysql PRIMARY
|
def mysql proxies_priv mysql PRIMARY
|
||||||
def mysql proxies_priv mysql Grantor
|
def mysql proxies_priv mysql Grantor
|
||||||
def mysql rpl_slave_state mysql PRIMARY
|
|
||||||
def mysql rpl_slave_state mysql PRIMARY
|
|
||||||
def mysql servers mysql PRIMARY
|
def mysql servers mysql PRIMARY
|
||||||
def mysql table_stats mysql PRIMARY
|
def mysql table_stats mysql PRIMARY
|
||||||
def mysql table_stats mysql PRIMARY
|
def mysql table_stats mysql PRIMARY
|
||||||
|
@ -22,6 +22,8 @@ def mysql db 1 mysql User 1 User A #CARD# NULL NULL BTREE
|
|||||||
def mysql event 0 mysql PRIMARY 1 db A #CARD# NULL NULL BTREE
|
def mysql event 0 mysql PRIMARY 1 db A #CARD# NULL NULL BTREE
|
||||||
def mysql event 0 mysql PRIMARY 2 name A #CARD# NULL NULL BTREE
|
def mysql event 0 mysql PRIMARY 2 name A #CARD# NULL NULL BTREE
|
||||||
def mysql func 0 mysql PRIMARY 1 name A #CARD# NULL NULL BTREE
|
def mysql func 0 mysql PRIMARY 1 name A #CARD# NULL NULL BTREE
|
||||||
|
def mysql gtid_slave_pos 0 mysql PRIMARY 1 domain_id A #CARD# NULL NULL BTREE
|
||||||
|
def mysql gtid_slave_pos 0 mysql PRIMARY 2 sub_id A #CARD# NULL NULL BTREE
|
||||||
def mysql help_category 0 mysql name 1 name A #CARD# NULL NULL BTREE
|
def mysql help_category 0 mysql name 1 name A #CARD# NULL NULL BTREE
|
||||||
def mysql help_category 0 mysql PRIMARY 1 help_category_id A #CARD# NULL NULL BTREE
|
def mysql help_category 0 mysql PRIMARY 1 help_category_id A #CARD# NULL NULL BTREE
|
||||||
def mysql help_keyword 0 mysql name 1 name A #CARD# NULL NULL BTREE
|
def mysql help_keyword 0 mysql name 1 name A #CARD# NULL NULL BTREE
|
||||||
@ -52,8 +54,6 @@ def mysql proxies_priv 0 mysql PRIMARY 1 Host A #CARD# NULL NULL BTREE
|
|||||||
def mysql proxies_priv 0 mysql PRIMARY 2 User A #CARD# NULL NULL BTREE
|
def mysql proxies_priv 0 mysql PRIMARY 2 User A #CARD# NULL NULL BTREE
|
||||||
def mysql proxies_priv 0 mysql PRIMARY 3 Proxied_host A #CARD# NULL NULL BTREE
|
def mysql proxies_priv 0 mysql PRIMARY 3 Proxied_host A #CARD# NULL NULL BTREE
|
||||||
def mysql proxies_priv 0 mysql PRIMARY 4 Proxied_user A #CARD# NULL NULL BTREE
|
def mysql proxies_priv 0 mysql PRIMARY 4 Proxied_user A #CARD# NULL NULL BTREE
|
||||||
def mysql rpl_slave_state 0 mysql PRIMARY 1 domain_id A #CARD# NULL NULL BTREE
|
|
||||||
def mysql rpl_slave_state 0 mysql PRIMARY 2 sub_id A #CARD# NULL NULL BTREE
|
|
||||||
def mysql servers 0 mysql PRIMARY 1 Server_name A #CARD# NULL NULL BTREE
|
def mysql servers 0 mysql PRIMARY 1 Server_name A #CARD# NULL NULL BTREE
|
||||||
def mysql tables_priv 1 mysql Grantor 1 Grantor A #CARD# NULL NULL BTREE
|
def mysql tables_priv 1 mysql Grantor 1 Grantor A #CARD# NULL NULL BTREE
|
||||||
def mysql tables_priv 0 mysql PRIMARY 1 Host A #CARD# NULL NULL BTREE
|
def mysql tables_priv 0 mysql PRIMARY 1 Host A #CARD# NULL NULL BTREE
|
||||||
|
@ -22,6 +22,8 @@ def mysql db 1 mysql User 1 User A #CARD# NULL NULL BTREE
|
|||||||
def mysql event 0 mysql PRIMARY 1 db A #CARD# NULL NULL BTREE
|
def mysql event 0 mysql PRIMARY 1 db A #CARD# NULL NULL BTREE
|
||||||
def mysql event 0 mysql PRIMARY 2 name A #CARD# NULL NULL BTREE
|
def mysql event 0 mysql PRIMARY 2 name A #CARD# NULL NULL BTREE
|
||||||
def mysql func 0 mysql PRIMARY 1 name A #CARD# NULL NULL BTREE
|
def mysql func 0 mysql PRIMARY 1 name A #CARD# NULL NULL BTREE
|
||||||
|
def mysql gtid_slave_pos 0 mysql PRIMARY 1 domain_id A #CARD# NULL NULL BTREE
|
||||||
|
def mysql gtid_slave_pos 0 mysql PRIMARY 2 sub_id A #CARD# NULL NULL BTREE
|
||||||
def mysql help_category 0 mysql name 1 name A #CARD# NULL NULL BTREE
|
def mysql help_category 0 mysql name 1 name A #CARD# NULL NULL BTREE
|
||||||
def mysql help_category 0 mysql PRIMARY 1 help_category_id A #CARD# NULL NULL BTREE
|
def mysql help_category 0 mysql PRIMARY 1 help_category_id A #CARD# NULL NULL BTREE
|
||||||
def mysql help_keyword 0 mysql name 1 name A #CARD# NULL NULL BTREE
|
def mysql help_keyword 0 mysql name 1 name A #CARD# NULL NULL BTREE
|
||||||
@ -52,8 +54,6 @@ def mysql proxies_priv 0 mysql PRIMARY 1 Host A #CARD# NULL NULL BTREE
|
|||||||
def mysql proxies_priv 0 mysql PRIMARY 2 User A #CARD# NULL NULL BTREE
|
def mysql proxies_priv 0 mysql PRIMARY 2 User A #CARD# NULL NULL BTREE
|
||||||
def mysql proxies_priv 0 mysql PRIMARY 3 Proxied_host A #CARD# NULL NULL BTREE
|
def mysql proxies_priv 0 mysql PRIMARY 3 Proxied_host A #CARD# NULL NULL BTREE
|
||||||
def mysql proxies_priv 0 mysql PRIMARY 4 Proxied_user A #CARD# NULL NULL BTREE
|
def mysql proxies_priv 0 mysql PRIMARY 4 Proxied_user A #CARD# NULL NULL BTREE
|
||||||
def mysql rpl_slave_state 0 mysql PRIMARY 1 domain_id A #CARD# NULL NULL BTREE
|
|
||||||
def mysql rpl_slave_state 0 mysql PRIMARY 2 sub_id A #CARD# NULL NULL BTREE
|
|
||||||
def mysql servers 0 mysql PRIMARY 1 Server_name A #CARD# NULL NULL BTREE
|
def mysql servers 0 mysql PRIMARY 1 Server_name A #CARD# NULL NULL BTREE
|
||||||
def mysql tables_priv 1 mysql Grantor 1 Grantor A #CARD# NULL NULL BTREE
|
def mysql tables_priv 1 mysql Grantor 1 Grantor A #CARD# NULL NULL BTREE
|
||||||
def mysql tables_priv 0 mysql PRIMARY 1 Host A #CARD# NULL NULL BTREE
|
def mysql tables_priv 0 mysql PRIMARY 1 Host A #CARD# NULL NULL BTREE
|
||||||
@ -91,6 +91,8 @@ def mysql db 1 mysql User 1 User A #CARD# NULL NULL BTREE
|
|||||||
def mysql event 0 mysql PRIMARY 1 db A #CARD# NULL NULL BTREE
|
def mysql event 0 mysql PRIMARY 1 db A #CARD# NULL NULL BTREE
|
||||||
def mysql event 0 mysql PRIMARY 2 name A #CARD# NULL NULL BTREE
|
def mysql event 0 mysql PRIMARY 2 name A #CARD# NULL NULL BTREE
|
||||||
def mysql func 0 mysql PRIMARY 1 name A #CARD# NULL NULL BTREE
|
def mysql func 0 mysql PRIMARY 1 name A #CARD# NULL NULL BTREE
|
||||||
|
def mysql gtid_slave_pos 0 mysql PRIMARY 1 domain_id A #CARD# NULL NULL BTREE
|
||||||
|
def mysql gtid_slave_pos 0 mysql PRIMARY 2 sub_id A #CARD# NULL NULL BTREE
|
||||||
def mysql help_category 0 mysql name 1 name A #CARD# NULL NULL BTREE
|
def mysql help_category 0 mysql name 1 name A #CARD# NULL NULL BTREE
|
||||||
def mysql help_category 0 mysql PRIMARY 1 help_category_id A #CARD# NULL NULL BTREE
|
def mysql help_category 0 mysql PRIMARY 1 help_category_id A #CARD# NULL NULL BTREE
|
||||||
def mysql help_keyword 0 mysql name 1 name A #CARD# NULL NULL BTREE
|
def mysql help_keyword 0 mysql name 1 name A #CARD# NULL NULL BTREE
|
||||||
@ -121,8 +123,6 @@ def mysql proxies_priv 0 mysql PRIMARY 1 Host A #CARD# NULL NULL BTREE
|
|||||||
def mysql proxies_priv 0 mysql PRIMARY 2 User A #CARD# NULL NULL BTREE
|
def mysql proxies_priv 0 mysql PRIMARY 2 User A #CARD# NULL NULL BTREE
|
||||||
def mysql proxies_priv 0 mysql PRIMARY 3 Proxied_host A #CARD# NULL NULL BTREE
|
def mysql proxies_priv 0 mysql PRIMARY 3 Proxied_host A #CARD# NULL NULL BTREE
|
||||||
def mysql proxies_priv 0 mysql PRIMARY 4 Proxied_user A #CARD# NULL NULL BTREE
|
def mysql proxies_priv 0 mysql PRIMARY 4 Proxied_user A #CARD# NULL NULL BTREE
|
||||||
def mysql rpl_slave_state 0 mysql PRIMARY 1 domain_id A #CARD# NULL NULL BTREE
|
|
||||||
def mysql rpl_slave_state 0 mysql PRIMARY 2 sub_id A #CARD# NULL NULL BTREE
|
|
||||||
def mysql servers 0 mysql PRIMARY 1 Server_name A #CARD# NULL NULL BTREE
|
def mysql servers 0 mysql PRIMARY 1 Server_name A #CARD# NULL NULL BTREE
|
||||||
def mysql tables_priv 1 mysql Grantor 1 Grantor A #CARD# NULL NULL BTREE
|
def mysql tables_priv 1 mysql Grantor 1 Grantor A #CARD# NULL NULL BTREE
|
||||||
def mysql tables_priv 0 mysql PRIMARY 1 Host A #CARD# NULL NULL BTREE
|
def mysql tables_priv 0 mysql PRIMARY 1 Host A #CARD# NULL NULL BTREE
|
||||||
|
@ -62,6 +62,7 @@ def mysql PRIMARY mysql columns_priv
|
|||||||
def mysql PRIMARY mysql db
|
def mysql PRIMARY mysql db
|
||||||
def mysql PRIMARY mysql event
|
def mysql PRIMARY mysql event
|
||||||
def mysql PRIMARY mysql func
|
def mysql PRIMARY mysql func
|
||||||
|
def mysql PRIMARY mysql gtid_slave_pos
|
||||||
def mysql PRIMARY mysql help_category
|
def mysql PRIMARY mysql help_category
|
||||||
def mysql name mysql help_category
|
def mysql name mysql help_category
|
||||||
def mysql PRIMARY mysql help_keyword
|
def mysql PRIMARY mysql help_keyword
|
||||||
@ -76,7 +77,6 @@ def mysql PRIMARY mysql plugin
|
|||||||
def mysql PRIMARY mysql proc
|
def mysql PRIMARY mysql proc
|
||||||
def mysql PRIMARY mysql procs_priv
|
def mysql PRIMARY mysql procs_priv
|
||||||
def mysql PRIMARY mysql proxies_priv
|
def mysql PRIMARY mysql proxies_priv
|
||||||
def mysql PRIMARY mysql rpl_slave_state
|
|
||||||
def mysql PRIMARY mysql servers
|
def mysql PRIMARY mysql servers
|
||||||
def mysql PRIMARY mysql table_stats
|
def mysql PRIMARY mysql table_stats
|
||||||
def mysql PRIMARY mysql tables_priv
|
def mysql PRIMARY mysql tables_priv
|
||||||
|
@ -12,6 +12,7 @@ def mysql PRIMARY mysql column_stats PRIMARY KEY
|
|||||||
def mysql PRIMARY mysql db PRIMARY KEY
|
def mysql PRIMARY mysql db PRIMARY KEY
|
||||||
def mysql PRIMARY mysql event PRIMARY KEY
|
def mysql PRIMARY mysql event PRIMARY KEY
|
||||||
def mysql PRIMARY mysql func PRIMARY KEY
|
def mysql PRIMARY mysql func PRIMARY KEY
|
||||||
|
def mysql PRIMARY mysql gtid_slave_pos PRIMARY KEY
|
||||||
def mysql name mysql help_category UNIQUE
|
def mysql name mysql help_category UNIQUE
|
||||||
def mysql PRIMARY mysql help_category PRIMARY KEY
|
def mysql PRIMARY mysql help_category PRIMARY KEY
|
||||||
def mysql name mysql help_keyword UNIQUE
|
def mysql name mysql help_keyword UNIQUE
|
||||||
@ -26,7 +27,6 @@ def mysql PRIMARY mysql plugin PRIMARY KEY
|
|||||||
def mysql PRIMARY mysql proc PRIMARY KEY
|
def mysql PRIMARY mysql proc PRIMARY KEY
|
||||||
def mysql PRIMARY mysql procs_priv PRIMARY KEY
|
def mysql PRIMARY mysql procs_priv PRIMARY KEY
|
||||||
def mysql PRIMARY mysql proxies_priv PRIMARY KEY
|
def mysql PRIMARY mysql proxies_priv PRIMARY KEY
|
||||||
def mysql PRIMARY mysql rpl_slave_state PRIMARY KEY
|
|
||||||
def mysql PRIMARY mysql servers PRIMARY KEY
|
def mysql PRIMARY mysql servers PRIMARY KEY
|
||||||
def mysql PRIMARY mysql tables_priv PRIMARY KEY
|
def mysql PRIMARY mysql tables_priv PRIMARY KEY
|
||||||
def mysql PRIMARY mysql table_stats PRIMARY KEY
|
def mysql PRIMARY mysql table_stats PRIMARY KEY
|
||||||
|
@ -12,6 +12,7 @@ def mysql PRIMARY mysql column_stats PRIMARY KEY
|
|||||||
def mysql PRIMARY mysql db PRIMARY KEY
|
def mysql PRIMARY mysql db PRIMARY KEY
|
||||||
def mysql PRIMARY mysql event PRIMARY KEY
|
def mysql PRIMARY mysql event PRIMARY KEY
|
||||||
def mysql PRIMARY mysql func PRIMARY KEY
|
def mysql PRIMARY mysql func PRIMARY KEY
|
||||||
|
def mysql PRIMARY mysql gtid_slave_pos PRIMARY KEY
|
||||||
def mysql name mysql help_category UNIQUE
|
def mysql name mysql help_category UNIQUE
|
||||||
def mysql PRIMARY mysql help_category PRIMARY KEY
|
def mysql PRIMARY mysql help_category PRIMARY KEY
|
||||||
def mysql name mysql help_keyword UNIQUE
|
def mysql name mysql help_keyword UNIQUE
|
||||||
@ -26,7 +27,6 @@ def mysql PRIMARY mysql plugin PRIMARY KEY
|
|||||||
def mysql PRIMARY mysql proc PRIMARY KEY
|
def mysql PRIMARY mysql proc PRIMARY KEY
|
||||||
def mysql PRIMARY mysql procs_priv PRIMARY KEY
|
def mysql PRIMARY mysql procs_priv PRIMARY KEY
|
||||||
def mysql PRIMARY mysql proxies_priv PRIMARY KEY
|
def mysql PRIMARY mysql proxies_priv PRIMARY KEY
|
||||||
def mysql PRIMARY mysql rpl_slave_state PRIMARY KEY
|
|
||||||
def mysql PRIMARY mysql servers PRIMARY KEY
|
def mysql PRIMARY mysql servers PRIMARY KEY
|
||||||
def mysql PRIMARY mysql tables_priv PRIMARY KEY
|
def mysql PRIMARY mysql tables_priv PRIMARY KEY
|
||||||
def mysql PRIMARY mysql table_stats PRIMARY KEY
|
def mysql PRIMARY mysql table_stats PRIMARY KEY
|
||||||
@ -46,6 +46,7 @@ def mysql PRIMARY mysql column_stats PRIMARY KEY
|
|||||||
def mysql PRIMARY mysql db PRIMARY KEY
|
def mysql PRIMARY mysql db PRIMARY KEY
|
||||||
def mysql PRIMARY mysql event PRIMARY KEY
|
def mysql PRIMARY mysql event PRIMARY KEY
|
||||||
def mysql PRIMARY mysql func PRIMARY KEY
|
def mysql PRIMARY mysql func PRIMARY KEY
|
||||||
|
def mysql PRIMARY mysql gtid_slave_pos PRIMARY KEY
|
||||||
def mysql name mysql help_category UNIQUE
|
def mysql name mysql help_category UNIQUE
|
||||||
def mysql PRIMARY mysql help_category PRIMARY KEY
|
def mysql PRIMARY mysql help_category PRIMARY KEY
|
||||||
def mysql name mysql help_keyword UNIQUE
|
def mysql name mysql help_keyword UNIQUE
|
||||||
@ -60,7 +61,6 @@ def mysql PRIMARY mysql plugin PRIMARY KEY
|
|||||||
def mysql PRIMARY mysql proc PRIMARY KEY
|
def mysql PRIMARY mysql proc PRIMARY KEY
|
||||||
def mysql PRIMARY mysql procs_priv PRIMARY KEY
|
def mysql PRIMARY mysql procs_priv PRIMARY KEY
|
||||||
def mysql PRIMARY mysql proxies_priv PRIMARY KEY
|
def mysql PRIMARY mysql proxies_priv PRIMARY KEY
|
||||||
def mysql PRIMARY mysql rpl_slave_state PRIMARY KEY
|
|
||||||
def mysql PRIMARY mysql servers PRIMARY KEY
|
def mysql PRIMARY mysql servers PRIMARY KEY
|
||||||
def mysql PRIMARY mysql tables_priv PRIMARY KEY
|
def mysql PRIMARY mysql tables_priv PRIMARY KEY
|
||||||
def mysql PRIMARY mysql table_stats PRIMARY KEY
|
def mysql PRIMARY mysql table_stats PRIMARY KEY
|
||||||
|
@ -152,6 +152,29 @@ user_comment General log
|
|||||||
Separator -----------------------------------------------------
|
Separator -----------------------------------------------------
|
||||||
TABLE_CATALOG def
|
TABLE_CATALOG def
|
||||||
TABLE_SCHEMA mysql
|
TABLE_SCHEMA mysql
|
||||||
|
TABLE_NAME gtid_slave_pos
|
||||||
|
TABLE_TYPE BASE TABLE
|
||||||
|
ENGINE MYISAM_OR_MARIA
|
||||||
|
VERSION 10
|
||||||
|
ROW_FORMAT Fixed
|
||||||
|
TABLE_ROWS #TBLR#
|
||||||
|
AVG_ROW_LENGTH #ARL#
|
||||||
|
DATA_LENGTH #DL#
|
||||||
|
MAX_DATA_LENGTH #MDL#
|
||||||
|
INDEX_LENGTH #IL#
|
||||||
|
DATA_FREE #DF#
|
||||||
|
AUTO_INCREMENT NULL
|
||||||
|
CREATE_TIME #CRT#
|
||||||
|
UPDATE_TIME #UT#
|
||||||
|
CHECK_TIME #CT#
|
||||||
|
TABLE_COLLATION latin1_swedish_ci
|
||||||
|
CHECKSUM NULL
|
||||||
|
CREATE_OPTIONS #CO#
|
||||||
|
TABLE_COMMENT #TC#
|
||||||
|
user_comment Replication slave GTID state
|
||||||
|
Separator -----------------------------------------------------
|
||||||
|
TABLE_CATALOG def
|
||||||
|
TABLE_SCHEMA mysql
|
||||||
TABLE_NAME help_category
|
TABLE_NAME help_category
|
||||||
TABLE_TYPE BASE TABLE
|
TABLE_TYPE BASE TABLE
|
||||||
ENGINE MYISAM_OR_MARIA
|
ENGINE MYISAM_OR_MARIA
|
||||||
@ -405,29 +428,6 @@ user_comment User proxy privileges
|
|||||||
Separator -----------------------------------------------------
|
Separator -----------------------------------------------------
|
||||||
TABLE_CATALOG def
|
TABLE_CATALOG def
|
||||||
TABLE_SCHEMA mysql
|
TABLE_SCHEMA mysql
|
||||||
TABLE_NAME rpl_slave_state
|
|
||||||
TABLE_TYPE BASE TABLE
|
|
||||||
ENGINE MYISAM_OR_MARIA
|
|
||||||
VERSION 10
|
|
||||||
ROW_FORMAT Fixed
|
|
||||||
TABLE_ROWS #TBLR#
|
|
||||||
AVG_ROW_LENGTH #ARL#
|
|
||||||
DATA_LENGTH #DL#
|
|
||||||
MAX_DATA_LENGTH #MDL#
|
|
||||||
INDEX_LENGTH #IL#
|
|
||||||
DATA_FREE #DF#
|
|
||||||
AUTO_INCREMENT NULL
|
|
||||||
CREATE_TIME #CRT#
|
|
||||||
UPDATE_TIME #UT#
|
|
||||||
CHECK_TIME #CT#
|
|
||||||
TABLE_COLLATION latin1_swedish_ci
|
|
||||||
CHECKSUM NULL
|
|
||||||
CREATE_OPTIONS #CO#
|
|
||||||
TABLE_COMMENT #TC#
|
|
||||||
user_comment Replication slave GTID state
|
|
||||||
Separator -----------------------------------------------------
|
|
||||||
TABLE_CATALOG def
|
|
||||||
TABLE_SCHEMA mysql
|
|
||||||
TABLE_NAME servers
|
TABLE_NAME servers
|
||||||
TABLE_TYPE BASE TABLE
|
TABLE_TYPE BASE TABLE
|
||||||
ENGINE MYISAM_OR_MARIA
|
ENGINE MYISAM_OR_MARIA
|
||||||
|
@ -152,6 +152,29 @@ user_comment General log
|
|||||||
Separator -----------------------------------------------------
|
Separator -----------------------------------------------------
|
||||||
TABLE_CATALOG def
|
TABLE_CATALOG def
|
||||||
TABLE_SCHEMA mysql
|
TABLE_SCHEMA mysql
|
||||||
|
TABLE_NAME gtid_slave_pos
|
||||||
|
TABLE_TYPE BASE TABLE
|
||||||
|
ENGINE MYISAM_OR_MARIA
|
||||||
|
VERSION 10
|
||||||
|
ROW_FORMAT Fixed
|
||||||
|
TABLE_ROWS #TBLR#
|
||||||
|
AVG_ROW_LENGTH #ARL#
|
||||||
|
DATA_LENGTH #DL#
|
||||||
|
MAX_DATA_LENGTH #MDL#
|
||||||
|
INDEX_LENGTH #IL#
|
||||||
|
DATA_FREE #DF#
|
||||||
|
AUTO_INCREMENT NULL
|
||||||
|
CREATE_TIME #CRT#
|
||||||
|
UPDATE_TIME #UT#
|
||||||
|
CHECK_TIME #CT#
|
||||||
|
TABLE_COLLATION latin1_swedish_ci
|
||||||
|
CHECKSUM NULL
|
||||||
|
CREATE_OPTIONS #CO#
|
||||||
|
TABLE_COMMENT #TC#
|
||||||
|
user_comment Replication slave GTID state
|
||||||
|
Separator -----------------------------------------------------
|
||||||
|
TABLE_CATALOG def
|
||||||
|
TABLE_SCHEMA mysql
|
||||||
TABLE_NAME help_category
|
TABLE_NAME help_category
|
||||||
TABLE_TYPE BASE TABLE
|
TABLE_TYPE BASE TABLE
|
||||||
ENGINE MYISAM_OR_MARIA
|
ENGINE MYISAM_OR_MARIA
|
||||||
@ -405,29 +428,6 @@ user_comment User proxy privileges
|
|||||||
Separator -----------------------------------------------------
|
Separator -----------------------------------------------------
|
||||||
TABLE_CATALOG def
|
TABLE_CATALOG def
|
||||||
TABLE_SCHEMA mysql
|
TABLE_SCHEMA mysql
|
||||||
TABLE_NAME rpl_slave_state
|
|
||||||
TABLE_TYPE BASE TABLE
|
|
||||||
ENGINE MYISAM_OR_MARIA
|
|
||||||
VERSION 10
|
|
||||||
ROW_FORMAT Fixed
|
|
||||||
TABLE_ROWS #TBLR#
|
|
||||||
AVG_ROW_LENGTH #ARL#
|
|
||||||
DATA_LENGTH #DL#
|
|
||||||
MAX_DATA_LENGTH #MDL#
|
|
||||||
INDEX_LENGTH #IL#
|
|
||||||
DATA_FREE #DF#
|
|
||||||
AUTO_INCREMENT NULL
|
|
||||||
CREATE_TIME #CRT#
|
|
||||||
UPDATE_TIME #UT#
|
|
||||||
CHECK_TIME #CT#
|
|
||||||
TABLE_COLLATION latin1_swedish_ci
|
|
||||||
CHECKSUM NULL
|
|
||||||
CREATE_OPTIONS #CO#
|
|
||||||
TABLE_COMMENT #TC#
|
|
||||||
user_comment Replication slave GTID state
|
|
||||||
Separator -----------------------------------------------------
|
|
||||||
TABLE_CATALOG def
|
|
||||||
TABLE_SCHEMA mysql
|
|
||||||
TABLE_NAME servers
|
TABLE_NAME servers
|
||||||
TABLE_TYPE BASE TABLE
|
TABLE_TYPE BASE TABLE
|
||||||
ENGINE MYISAM_OR_MARIA
|
ENGINE MYISAM_OR_MARIA
|
||||||
@ -812,6 +812,29 @@ user_comment General log
|
|||||||
Separator -----------------------------------------------------
|
Separator -----------------------------------------------------
|
||||||
TABLE_CATALOG def
|
TABLE_CATALOG def
|
||||||
TABLE_SCHEMA mysql
|
TABLE_SCHEMA mysql
|
||||||
|
TABLE_NAME gtid_slave_pos
|
||||||
|
TABLE_TYPE BASE TABLE
|
||||||
|
ENGINE MYISAM_OR_MARIA
|
||||||
|
VERSION 10
|
||||||
|
ROW_FORMAT Fixed
|
||||||
|
TABLE_ROWS #TBLR#
|
||||||
|
AVG_ROW_LENGTH #ARL#
|
||||||
|
DATA_LENGTH #DL#
|
||||||
|
MAX_DATA_LENGTH #MDL#
|
||||||
|
INDEX_LENGTH #IL#
|
||||||
|
DATA_FREE #DF#
|
||||||
|
AUTO_INCREMENT NULL
|
||||||
|
CREATE_TIME #CRT#
|
||||||
|
UPDATE_TIME #UT#
|
||||||
|
CHECK_TIME #CT#
|
||||||
|
TABLE_COLLATION latin1_swedish_ci
|
||||||
|
CHECKSUM NULL
|
||||||
|
CREATE_OPTIONS #CO#
|
||||||
|
TABLE_COMMENT #TC#
|
||||||
|
user_comment Replication slave GTID state
|
||||||
|
Separator -----------------------------------------------------
|
||||||
|
TABLE_CATALOG def
|
||||||
|
TABLE_SCHEMA mysql
|
||||||
TABLE_NAME help_category
|
TABLE_NAME help_category
|
||||||
TABLE_TYPE BASE TABLE
|
TABLE_TYPE BASE TABLE
|
||||||
ENGINE MYISAM_OR_MARIA
|
ENGINE MYISAM_OR_MARIA
|
||||||
@ -1065,29 +1088,6 @@ user_comment User proxy privileges
|
|||||||
Separator -----------------------------------------------------
|
Separator -----------------------------------------------------
|
||||||
TABLE_CATALOG def
|
TABLE_CATALOG def
|
||||||
TABLE_SCHEMA mysql
|
TABLE_SCHEMA mysql
|
||||||
TABLE_NAME rpl_slave_state
|
|
||||||
TABLE_TYPE BASE TABLE
|
|
||||||
ENGINE MYISAM_OR_MARIA
|
|
||||||
VERSION 10
|
|
||||||
ROW_FORMAT Fixed
|
|
||||||
TABLE_ROWS #TBLR#
|
|
||||||
AVG_ROW_LENGTH #ARL#
|
|
||||||
DATA_LENGTH #DL#
|
|
||||||
MAX_DATA_LENGTH #MDL#
|
|
||||||
INDEX_LENGTH #IL#
|
|
||||||
DATA_FREE #DF#
|
|
||||||
AUTO_INCREMENT NULL
|
|
||||||
CREATE_TIME #CRT#
|
|
||||||
UPDATE_TIME #UT#
|
|
||||||
CHECK_TIME #CT#
|
|
||||||
TABLE_COLLATION latin1_swedish_ci
|
|
||||||
CHECKSUM NULL
|
|
||||||
CREATE_OPTIONS #CO#
|
|
||||||
TABLE_COMMENT #TC#
|
|
||||||
user_comment Replication slave GTID state
|
|
||||||
Separator -----------------------------------------------------
|
|
||||||
TABLE_CATALOG def
|
|
||||||
TABLE_SCHEMA mysql
|
|
||||||
TABLE_NAME servers
|
TABLE_NAME servers
|
||||||
TABLE_TYPE BASE TABLE
|
TABLE_TYPE BASE TABLE
|
||||||
ENGINE MYISAM_OR_MARIA
|
ENGINE MYISAM_OR_MARIA
|
||||||
|
@ -69,13 +69,13 @@ Last_SQL_Errno 0
|
|||||||
Last_SQL_Error
|
Last_SQL_Error
|
||||||
Replicate_Ignore_Server_Ids
|
Replicate_Ignore_Server_Ids
|
||||||
Master_Server_Id 3
|
Master_Server_Id 3
|
||||||
Using_Gtid 0
|
Using_Gtid No
|
||||||
Retried_transactions 0
|
Retried_transactions 0
|
||||||
Max_relay_log_size 1073741824
|
Max_relay_log_size 1073741824
|
||||||
Executed_log_entries 25
|
Executed_log_entries 25
|
||||||
Slave_received_heartbeats 0
|
Slave_received_heartbeats 0
|
||||||
Slave_heartbeat_period 60.000
|
Slave_heartbeat_period 60.000
|
||||||
Gtid_Pos 1-1-4,2-2-3
|
Gtid_Slave_Pos 1-1-4,2-2-3
|
||||||
*** Now move slave2 to replicate from both master1 and master2 instead of just slave1 ***
|
*** Now move slave2 to replicate from both master1 and master2 instead of just slave1 ***
|
||||||
STOP ALL SLAVES;
|
STOP ALL SLAVES;
|
||||||
Warnings:
|
Warnings:
|
||||||
@ -84,8 +84,8 @@ INSERT INTO t1 VALUES (2, "switch1");
|
|||||||
INSERT INTO t3 VALUES (102, "switch1 a");
|
INSERT INTO t3 VALUES (102, "switch1 a");
|
||||||
INSERT INTO t2 VALUES (2, "switch1");
|
INSERT INTO t2 VALUES (2, "switch1");
|
||||||
INSERT INTO t3 VALUES (202, "switch1 b");
|
INSERT INTO t3 VALUES (202, "switch1 b");
|
||||||
CHANGE MASTER 'slave1' TO master_port=MYPORT_1, master_host='127.0.0.1', master_user='root', master_use_gtid=1;
|
CHANGE MASTER 'slave1' TO master_port=MYPORT_1, master_host='127.0.0.1', master_user='root', master_use_gtid=current_pos;
|
||||||
CHANGE MASTER 'slave2' TO master_port=MYPORT_2, master_host='127.0.0.1', master_user='root', master_use_gtid=1;
|
CHANGE MASTER 'slave2' TO master_port=MYPORT_2, master_host='127.0.0.1', master_user='root', master_use_gtid=current_pos;
|
||||||
SET default_master_connection = 'slave1';
|
SET default_master_connection = 'slave1';
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
include/wait_for_slave_to_start.inc
|
include/wait_for_slave_to_start.inc
|
||||||
@ -102,7 +102,7 @@ INSERT INTO t3 VALUES (203, "switch 2 b");
|
|||||||
STOP SLAVE 'slave2';
|
STOP SLAVE 'slave2';
|
||||||
INSERT INTO t2 VALUES (4, "switch 3");
|
INSERT INTO t2 VALUES (4, "switch 3");
|
||||||
INSERT INTO t3 VALUES (204, "switch 3 b");
|
INSERT INTO t3 VALUES (204, "switch 3 b");
|
||||||
CHANGE MASTER TO master_port=MYPORT_4, master_host='127.0.0.1', master_user='root', master_use_gtid=1;
|
CHANGE MASTER TO master_port=MYPORT_4, master_host='127.0.0.1', master_user='root', master_use_gtid=current_pos;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
SELECT * FROM t1 ORDER BY a;
|
SELECT * FROM t1 ORDER BY a;
|
||||||
a b
|
a b
|
||||||
|
@ -75,9 +75,9 @@ INSERT INTO t3 VALUES (202, "switch1 b");
|
|||||||
|
|
||||||
--connection slave2
|
--connection slave2
|
||||||
--replace_result $SERVER_MYPORT_1 MYPORT_1
|
--replace_result $SERVER_MYPORT_1 MYPORT_1
|
||||||
eval CHANGE MASTER 'slave1' TO master_port=$SERVER_MYPORT_1, master_host='127.0.0.1', master_user='root', master_use_gtid=1;
|
eval CHANGE MASTER 'slave1' TO master_port=$SERVER_MYPORT_1, master_host='127.0.0.1', master_user='root', master_use_gtid=current_pos;
|
||||||
--replace_result $SERVER_MYPORT_2 MYPORT_2
|
--replace_result $SERVER_MYPORT_2 MYPORT_2
|
||||||
eval CHANGE MASTER 'slave2' TO master_port=$SERVER_MYPORT_2, master_host='127.0.0.1', master_user='root', master_use_gtid=1;
|
eval CHANGE MASTER 'slave2' TO master_port=$SERVER_MYPORT_2, master_host='127.0.0.1', master_user='root', master_use_gtid=current_pos;
|
||||||
SET default_master_connection = 'slave1';
|
SET default_master_connection = 'slave1';
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
--source include/wait_for_slave_to_start.inc
|
--source include/wait_for_slave_to_start.inc
|
||||||
@ -118,7 +118,7 @@ INSERT INTO t3 VALUES (204, "switch 3 b");
|
|||||||
|
|
||||||
--connection slave1
|
--connection slave1
|
||||||
--replace_result $SERVER_MYPORT_4 MYPORT_4
|
--replace_result $SERVER_MYPORT_4 MYPORT_4
|
||||||
eval CHANGE MASTER TO master_port=$SERVER_MYPORT_4, master_host='127.0.0.1', master_user='root', master_use_gtid=1;
|
eval CHANGE MASTER TO master_port=$SERVER_MYPORT_4, master_host='127.0.0.1', master_user='root', master_use_gtid=current_pos;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
--let $wait_condition= SELECT (SELECT COUNT(*) FROM t1)=3 AND (SELECT COUNT(*) FROM t2)=4 AND (SELECT COUNT(*) FROM t3)=7
|
--let $wait_condition= SELECT (SELECT COUNT(*) FROM t1)=3 AND (SELECT COUNT(*) FROM t2)=4 AND (SELECT COUNT(*) FROM t3)=7
|
||||||
--source include/wait_condition.inc
|
--source include/wait_condition.inc
|
||||||
|
@ -84,17 +84,17 @@ MASTER 2.2
|
|||||||
# EOF
|
# EOF
|
||||||
#
|
#
|
||||||
show all slaves status;
|
show all slaves status;
|
||||||
Connection_name Slave_SQL_State Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Using_Gtid Retried_transactions Max_relay_log_size Executed_log_entries Slave_received_heartbeats Slave_heartbeat_period Gtid_Pos
|
Connection_name Slave_SQL_State Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Using_Gtid Retried_transactions Max_relay_log_size Executed_log_entries Slave_received_heartbeats Slave_heartbeat_period Gtid_Slave_Pos
|
||||||
Slave has read all relay log; waiting for the slave I/O thread to update it Waiting for master to send event 127.0.0.1 root MYPORT_1 60 master-bin.000001 311 relay.000002 599 master-bin.000001 Yes Yes 0 0 311 886 None 0 No 0 No 0 0 1 0 0 1073741824 7 0 60.000
|
Slave has read all relay log; waiting for the slave I/O thread to update it Waiting for master to send event 127.0.0.1 root MYPORT_1 60 master-bin.000001 311 relay.000002 599 master-bin.000001 Yes Yes 0 0 311 886 None 0 No 0 No 0 0 1 No 0 1073741824 7 0 60.000
|
||||||
MASTER 2.2 Slave has read all relay log; waiting for the slave I/O thread to update it Waiting for master to send event 127.0.0.1 root MYPORT_2 60 master-bin.000001 311 relay-master@00202@002e2.000002 599 master-bin.000001 Yes Yes 0 0 311 905 None 0 No 0 No 0 0 2 0 0 1073741824 7 0 60.000
|
MASTER 2.2 Slave has read all relay log; waiting for the slave I/O thread to update it Waiting for master to send event 127.0.0.1 root MYPORT_2 60 master-bin.000001 311 relay-master@00202@002e2.000002 599 master-bin.000001 Yes Yes 0 0 311 905 None 0 No 0 No 0 0 2 No 0 1073741824 7 0 60.000
|
||||||
include/wait_for_slave_to_start.inc
|
include/wait_for_slave_to_start.inc
|
||||||
set default_master_connection = 'MASTER 2.2';
|
set default_master_connection = 'MASTER 2.2';
|
||||||
include/wait_for_slave_to_start.inc
|
include/wait_for_slave_to_start.inc
|
||||||
set default_master_connection = '';
|
set default_master_connection = '';
|
||||||
show all slaves status;
|
show all slaves status;
|
||||||
Connection_name Slave_SQL_State Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Using_Gtid Retried_transactions Max_relay_log_size Executed_log_entries Slave_received_heartbeats Slave_heartbeat_period Gtid_Pos
|
Connection_name Slave_SQL_State Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Using_Gtid Retried_transactions Max_relay_log_size Executed_log_entries Slave_received_heartbeats Slave_heartbeat_period Gtid_Slave_Pos
|
||||||
Slave has read all relay log; waiting for the slave I/O thread to update it Waiting for master to send event 127.0.0.1 root MYPORT_1 60 master-bin.000001 311 relay.000004 536 master-bin.000001 Yes Yes 0 0 311 823 None 0 No 0 No 0 0 1 0 0 1073741824 6 0 60.000
|
Slave has read all relay log; waiting for the slave I/O thread to update it Waiting for master to send event 127.0.0.1 root MYPORT_1 60 master-bin.000001 311 relay.000004 536 master-bin.000001 Yes Yes 0 0 311 823 None 0 No 0 No 0 0 1 No 0 1073741824 6 0 60.000
|
||||||
MASTER 2.2 Slave has read all relay log; waiting for the slave I/O thread to update it Waiting for master to send event 127.0.0.1 root MYPORT_2 60 master-bin.000001 311 relay-master@00202@002e2.000004 536 master-bin.000001 Yes Yes 0 0 311 842 None 0 No 0 No 0 0 2 0 0 1073741824 6 0 60.000
|
MASTER 2.2 Slave has read all relay log; waiting for the slave I/O thread to update it Waiting for master to send event 127.0.0.1 root MYPORT_2 60 master-bin.000001 311 relay-master@00202@002e2.000004 536 master-bin.000001 Yes Yes 0 0 311 842 None 0 No 0 No 0 0 2 No 0 1073741824 6 0 60.000
|
||||||
#
|
#
|
||||||
# List of files matching '*info*' pattern
|
# List of files matching '*info*' pattern
|
||||||
# after slave server restart
|
# after slave server restart
|
||||||
|
@ -11,13 +11,13 @@ set default_master_connection = 'master1';
|
|||||||
include/wait_for_slave_to_start.inc
|
include/wait_for_slave_to_start.inc
|
||||||
show slave 'master1' status;
|
show slave 'master1' status;
|
||||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Using_Gtid
|
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Using_Gtid
|
||||||
Waiting for master to send event 127.0.0.1 root MYPORT_1 60 master-bin.000001 311 mysqld-relay-bin-master1.000002 599 master-bin.000001 Yes Yes 0 0 311 905 None 0 No 0 No 0 0 1 0
|
Waiting for master to send event 127.0.0.1 root MYPORT_1 60 master-bin.000001 311 mysqld-relay-bin-master1.000002 599 master-bin.000001 Yes Yes 0 0 311 905 None 0 No 0 No 0 0 1 No
|
||||||
show slave status;
|
show slave status;
|
||||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Using_Gtid
|
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Using_Gtid
|
||||||
Waiting for master to send event 127.0.0.1 root MYPORT_1 60 master-bin.000001 311 mysqld-relay-bin-master1.000002 599 master-bin.000001 Yes Yes 0 0 311 905 None 0 No 0 No 0 0 1 0
|
Waiting for master to send event 127.0.0.1 root MYPORT_1 60 master-bin.000001 311 mysqld-relay-bin-master1.000002 599 master-bin.000001 Yes Yes 0 0 311 905 None 0 No 0 No 0 0 1 No
|
||||||
show all slaves status;
|
show all slaves status;
|
||||||
Connection_name Slave_SQL_State Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Using_Gtid Retried_transactions Max_relay_log_size Executed_log_entries Slave_received_heartbeats Slave_heartbeat_period Gtid_Pos
|
Connection_name Slave_SQL_State Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Using_Gtid Retried_transactions Max_relay_log_size Executed_log_entries Slave_received_heartbeats Slave_heartbeat_period Gtid_Slave_Pos
|
||||||
master1 Slave has read all relay log; waiting for the slave I/O thread to update it Waiting for master to send event 127.0.0.1 root MYPORT_1 60 master-bin.000001 311 mysqld-relay-bin-master1.000002 599 master-bin.000001 Yes Yes 0 0 311 905 None 0 No 0 No 0 0 1 0 0 1073741824 7 0 60.000
|
master1 Slave has read all relay log; waiting for the slave I/O thread to update it Waiting for master to send event 127.0.0.1 root MYPORT_1 60 master-bin.000001 311 mysqld-relay-bin-master1.000002 599 master-bin.000001 Yes Yes 0 0 311 905 None 0 No 0 No 0 0 1 No 0 1073741824 7 0 60.000
|
||||||
drop database if exists db1;
|
drop database if exists db1;
|
||||||
create database db1;
|
create database db1;
|
||||||
use db1;
|
use db1;
|
||||||
@ -75,9 +75,9 @@ master_user='root';
|
|||||||
start slave;
|
start slave;
|
||||||
include/wait_for_slave_to_start.inc
|
include/wait_for_slave_to_start.inc
|
||||||
show all slaves status;
|
show all slaves status;
|
||||||
Connection_name Slave_SQL_State Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Using_Gtid Retried_transactions Max_relay_log_size Executed_log_entries Slave_received_heartbeats Slave_heartbeat_period Gtid_Pos
|
Connection_name Slave_SQL_State Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Using_Gtid Retried_transactions Max_relay_log_size Executed_log_entries Slave_received_heartbeats Slave_heartbeat_period Gtid_Slave_Pos
|
||||||
Slave has read all relay log; waiting for the slave I/O thread to update it Waiting for master to send event 127.0.0.1 root MYPORT_2 60 master-bin.000001 311 mysqld-relay-bin.000002 599 master-bin.000001 Yes Yes 0 0 311 897 None 0 No 0 No 0 0 2 0 0 1073741824 7 0 60.000 0-1-4
|
Slave has read all relay log; waiting for the slave I/O thread to update it Waiting for master to send event 127.0.0.1 root MYPORT_2 60 master-bin.000001 311 mysqld-relay-bin.000002 599 master-bin.000001 Yes Yes 0 0 311 897 None 0 No 0 No 0 0 2 No 0 1073741824 7 0 60.000 0-1-4
|
||||||
master1 Slave has read all relay log; waiting for the slave I/O thread to update it Waiting for master to send event 127.0.0.1 root MYPORT_1 60 master-bin.000001 986 mysqld-relay-bin-master1.000002 1274 master-bin.000001 Yes Yes 0 0 986 1580 None 0 No 0 No 0 0 1 0 0 1073741824 17 0 60.000 0-1-4
|
master1 Slave has read all relay log; waiting for the slave I/O thread to update it Waiting for master to send event 127.0.0.1 root MYPORT_1 60 master-bin.000001 986 mysqld-relay-bin-master1.000002 1274 master-bin.000001 Yes Yes 0 0 986 1580 None 0 No 0 No 0 0 1 No 0 1073741824 17 0 60.000 0-1-4
|
||||||
insert into t1 (f1) values ('three');
|
insert into t1 (f1) values ('three');
|
||||||
drop database if exists db2;
|
drop database if exists db2;
|
||||||
create database db2;
|
create database db2;
|
||||||
@ -105,9 +105,9 @@ master-bin.000002 367
|
|||||||
insert into t1 (f1) values ('four');
|
insert into t1 (f1) values ('four');
|
||||||
create table db1.t3 (f1 int) engine=InnoDB;
|
create table db1.t3 (f1 int) engine=InnoDB;
|
||||||
show all slaves status;
|
show all slaves status;
|
||||||
Connection_name Slave_SQL_State Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Using_Gtid Retried_transactions Max_relay_log_size Executed_log_entries Slave_received_heartbeats Slave_heartbeat_period Gtid_Pos
|
Connection_name Slave_SQL_State Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Using_Gtid Retried_transactions Max_relay_log_size Executed_log_entries Slave_received_heartbeats Slave_heartbeat_period Gtid_Slave_Pos
|
||||||
Slave has read all relay log; waiting for the slave I/O thread to update it Waiting for master to send event 127.0.0.1 root MYPORT_2 60 master-bin.000001 919 mysqld-relay-bin.000002 1207 master-bin.000001 Yes Yes 0 0 919 1505 None 0 No 0 No 0 0 2 0 0 1073741824 17 0 60.000 0-1-7
|
Slave has read all relay log; waiting for the slave I/O thread to update it Waiting for master to send event 127.0.0.1 root MYPORT_2 60 master-bin.000001 919 mysqld-relay-bin.000002 1207 master-bin.000001 Yes Yes 0 0 919 1505 None 0 No 0 No 0 0 2 No 0 1073741824 17 0 60.000 0-1-7
|
||||||
master1 Slave has read all relay log; waiting for the slave I/O thread to update it Waiting for master to send event 127.0.0.1 root MYPORT_1 60 master-bin.000002 740 mysqld-relay-bin-master1.000004 1028 master-bin.000002 Yes Yes 0 0 740 1378 None 0 No 0 No 0 0 1 0 0 1073741824 37 0 60.000 0-1-7
|
master1 Slave has read all relay log; waiting for the slave I/O thread to update it Waiting for master to send event 127.0.0.1 root MYPORT_1 60 master-bin.000002 740 mysqld-relay-bin-master1.000004 1028 master-bin.000002 Yes Yes 0 0 740 1378 None 0 No 0 No 0 0 1 No 0 1073741824 37 0 60.000 0-1-7
|
||||||
select * from db1.t1;
|
select * from db1.t1;
|
||||||
i f1
|
i f1
|
||||||
1 one
|
1 one
|
||||||
|
@ -23,7 +23,7 @@ while ($con_name != 'No such row')
|
|||||||
|
|
||||||
--error 0,ER_FLUSH_MASTER_BINLOG_CLOSED
|
--error 0,ER_FLUSH_MASTER_BINLOG_CLOSED
|
||||||
reset master;
|
reset master;
|
||||||
set global gtid_pos='';
|
set global gtid_slave_pos='';
|
||||||
eval set default_master_connection = '$default_master';
|
eval set default_master_connection = '$default_master';
|
||||||
|
|
||||||
--source include/end_include_file.inc
|
--source include/end_include_file.inc
|
||||||
|
@ -11,14 +11,14 @@ insert into t1 values (1),(2);
|
|||||||
stop slave 'master1';
|
stop slave 'master1';
|
||||||
show slave 'master1' status;
|
show slave 'master1' status;
|
||||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Using_Gtid
|
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Using_Gtid
|
||||||
127.0.0.1 root MYPORT_1 60 master-bin.000001 800 mysqld-relay-bin-master1.000002 1088 master-bin.000001 No No 0 0 800 1394 None 0 No NULL No 0 0 1 0
|
127.0.0.1 root MYPORT_1 60 master-bin.000001 800 mysqld-relay-bin-master1.000002 1088 master-bin.000001 No No 0 0 800 1394 None 0 No NULL No 0 0 1 No
|
||||||
mysqld-relay-bin-master1.000001
|
mysqld-relay-bin-master1.000001
|
||||||
mysqld-relay-bin-master1.000002
|
mysqld-relay-bin-master1.000002
|
||||||
mysqld-relay-bin-master1.index
|
mysqld-relay-bin-master1.index
|
||||||
reset slave 'master1';
|
reset slave 'master1';
|
||||||
show slave 'master1' status;
|
show slave 'master1' status;
|
||||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Using_Gtid
|
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Using_Gtid
|
||||||
127.0.0.1 root MYPORT_1 60 4 1088 No No 0 0 0 1394 None 0 No NULL No 0 0 1 0
|
127.0.0.1 root MYPORT_1 60 4 1088 No No 0 0 0 1394 None 0 No NULL No 0 0 1 No
|
||||||
reset slave 'master1' all;
|
reset slave 'master1' all;
|
||||||
show slave 'master1' status;
|
show slave 'master1' status;
|
||||||
ERROR HY000: There is no master connection 'master1'
|
ERROR HY000: There is no master connection 'master1'
|
||||||
|
@ -10,9 +10,9 @@ Note 1937 SLAVE 'slave2' started
|
|||||||
include/wait_for_slave_to_start.inc
|
include/wait_for_slave_to_start.inc
|
||||||
set default_master_connection = '';
|
set default_master_connection = '';
|
||||||
show all slaves status;
|
show all slaves status;
|
||||||
Connection_name Slave_SQL_State Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Using_Gtid Retried_transactions Max_relay_log_size Executed_log_entries Slave_received_heartbeats Slave_heartbeat_period Gtid_Pos
|
Connection_name Slave_SQL_State Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Using_Gtid Retried_transactions Max_relay_log_size Executed_log_entries Slave_received_heartbeats Slave_heartbeat_period Gtid_Slave_Pos
|
||||||
slave1 Slave has read all relay log; waiting for the slave I/O thread to update it Waiting for master to send event 127.0.0.1 root MYPORT_1 60 master-bin.000001 311 mysqld-relay-bin-slave1.000002 599 master-bin.000001 Yes Yes 0 0 311 904 None 0 No 0 No 0 0 1 0 0 1073741824 7 0 60.000
|
slave1 Slave has read all relay log; waiting for the slave I/O thread to update it Waiting for master to send event 127.0.0.1 root MYPORT_1 60 master-bin.000001 311 mysqld-relay-bin-slave1.000002 599 master-bin.000001 Yes Yes 0 0 311 904 None 0 No 0 No 0 0 1 No 0 1073741824 7 0 60.000
|
||||||
slave2 Slave has read all relay log; waiting for the slave I/O thread to update it Waiting for master to send event 127.0.0.1 root MYPORT_2 60 master-bin.000001 311 mysqld-relay-bin-slave2.000002 599 master-bin.000001 Yes Yes 0 0 311 904 None 0 No 0 No 0 0 2 0 0 1073741824 7 0 60.000
|
slave2 Slave has read all relay log; waiting for the slave I/O thread to update it Waiting for master to send event 127.0.0.1 root MYPORT_2 60 master-bin.000001 311 mysqld-relay-bin-slave2.000002 599 master-bin.000001 Yes Yes 0 0 311 904 None 0 No 0 No 0 0 2 No 0 1073741824 7 0 60.000
|
||||||
start all slaves;
|
start all slaves;
|
||||||
stop slave 'slave1';
|
stop slave 'slave1';
|
||||||
show slave 'slave1' status;
|
show slave 'slave1' status;
|
||||||
@ -56,22 +56,22 @@ Last_SQL_Errno 0
|
|||||||
Last_SQL_Error
|
Last_SQL_Error
|
||||||
Replicate_Ignore_Server_Ids
|
Replicate_Ignore_Server_Ids
|
||||||
Master_Server_Id 1
|
Master_Server_Id 1
|
||||||
Using_Gtid 0
|
Using_Gtid No
|
||||||
reset slave 'slave1';
|
reset slave 'slave1';
|
||||||
show all slaves status;
|
show all slaves status;
|
||||||
Connection_name Slave_SQL_State Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Using_Gtid Retried_transactions Max_relay_log_size Executed_log_entries Slave_received_heartbeats Slave_heartbeat_period Gtid_Pos
|
Connection_name Slave_SQL_State Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Using_Gtid Retried_transactions Max_relay_log_size Executed_log_entries Slave_received_heartbeats Slave_heartbeat_period Gtid_Slave_Pos
|
||||||
slave1 127.0.0.1 root MYPORT_1 60 4 599 No No 0 0 0 904 None 0 No NULL No 0 0 1 0 0 1073741824 7 0 60.000
|
slave1 127.0.0.1 root MYPORT_1 60 4 599 No No 0 0 0 904 None 0 No NULL No 0 0 1 No 0 1073741824 7 0 60.000
|
||||||
slave2 Slave has read all relay log; waiting for the slave I/O thread to update it Waiting for master to send event 127.0.0.1 root MYPORT_2 60 master-bin.000001 311 mysqld-relay-bin-slave2.000002 599 master-bin.000001 Yes Yes 0 0 311 904 None 0 No 0 No 0 0 2 0 0 1073741824 7 0 60.000
|
slave2 Slave has read all relay log; waiting for the slave I/O thread to update it Waiting for master to send event 127.0.0.1 root MYPORT_2 60 master-bin.000001 311 mysqld-relay-bin-slave2.000002 599 master-bin.000001 Yes Yes 0 0 311 904 None 0 No 0 No 0 0 2 No 0 1073741824 7 0 60.000
|
||||||
reset slave 'slave1' all;
|
reset slave 'slave1' all;
|
||||||
show all slaves status;
|
show all slaves status;
|
||||||
Connection_name Slave_SQL_State Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Using_Gtid Retried_transactions Max_relay_log_size Executed_log_entries Slave_received_heartbeats Slave_heartbeat_period Gtid_Pos
|
Connection_name Slave_SQL_State Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Using_Gtid Retried_transactions Max_relay_log_size Executed_log_entries Slave_received_heartbeats Slave_heartbeat_period Gtid_Slave_Pos
|
||||||
slave2 Slave has read all relay log; waiting for the slave I/O thread to update it Waiting for master to send event 127.0.0.1 root MYPORT_2 60 master-bin.000001 311 mysqld-relay-bin-slave2.000002 599 master-bin.000001 Yes Yes 0 0 311 904 None 0 No 0 No 0 0 2 0 0 1073741824 7 0 60.000
|
slave2 Slave has read all relay log; waiting for the slave I/O thread to update it Waiting for master to send event 127.0.0.1 root MYPORT_2 60 master-bin.000001 311 mysqld-relay-bin-slave2.000002 599 master-bin.000001 Yes Yes 0 0 311 904 None 0 No 0 No 0 0 2 No 0 1073741824 7 0 60.000
|
||||||
stop all slaves;
|
stop all slaves;
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1938 SLAVE 'slave2' stopped
|
Note 1938 SLAVE 'slave2' stopped
|
||||||
show all slaves status;
|
show all slaves status;
|
||||||
Connection_name Slave_SQL_State Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Using_Gtid Retried_transactions Max_relay_log_size Executed_log_entries Slave_received_heartbeats Slave_heartbeat_period Gtid_Pos
|
Connection_name Slave_SQL_State Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Using_Gtid Retried_transactions Max_relay_log_size Executed_log_entries Slave_received_heartbeats Slave_heartbeat_period Gtid_Slave_Pos
|
||||||
slave2 127.0.0.1 root MYPORT_2 60 master-bin.000001 311 mysqld-relay-bin-slave2.000002 599 master-bin.000001 No No 0 0 311 904 None 0 No NULL No 0 0 2 0 0 1073741824 7 0 60.000
|
slave2 127.0.0.1 root MYPORT_2 60 master-bin.000001 311 mysqld-relay-bin-slave2.000002 599 master-bin.000001 No No 0 0 311 904 None 0 No NULL No 0 0 2 No 0 1073741824 7 0 60.000
|
||||||
stop all slaves;
|
stop all slaves;
|
||||||
include/reset_master_slave.inc
|
include/reset_master_slave.inc
|
||||||
include/reset_master_slave.inc
|
include/reset_master_slave.inc
|
||||||
|
@ -5,7 +5,7 @@ Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File
|
|||||||
show slave '' status;
|
show slave '' status;
|
||||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Using_Gtid
|
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Using_Gtid
|
||||||
show all slaves status;
|
show all slaves status;
|
||||||
Connection_name Slave_SQL_State Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Using_Gtid Retried_transactions Max_relay_log_size Executed_log_entries Slave_received_heartbeats Slave_heartbeat_period Gtid_Pos
|
Connection_name Slave_SQL_State Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master Master_SSL_Verify_Server_Cert Last_IO_Errno Last_IO_Error Last_SQL_Errno Last_SQL_Error Replicate_Ignore_Server_Ids Master_Server_Id Using_Gtid Retried_transactions Max_relay_log_size Executed_log_entries Slave_received_heartbeats Slave_heartbeat_period Gtid_Slave_Pos
|
||||||
#
|
#
|
||||||
# Check error handling
|
# Check error handling
|
||||||
#
|
#
|
||||||
|
@ -49,7 +49,7 @@ include/stop_slave.inc
|
|||||||
INSERT INTO t1 VALUES (5, "m1a");
|
INSERT INTO t1 VALUES (5, "m1a");
|
||||||
INSERT INTO t2 VALUES (5, "i1a");
|
INSERT INTO t2 VALUES (5, "i1a");
|
||||||
CHANGE MASTER TO master_host = '127.0.0.1', master_port = MASTER_PORT,
|
CHANGE MASTER TO master_host = '127.0.0.1', master_port = MASTER_PORT,
|
||||||
MASTER_USE_GTID=1;
|
MASTER_USE_GTID=CURRENT_POS;
|
||||||
include/start_slave.inc
|
include/start_slave.inc
|
||||||
SELECT * FROM t1 ORDER BY a;
|
SELECT * FROM t1 ORDER BY a;
|
||||||
a b
|
a b
|
||||||
@ -68,7 +68,7 @@ a b
|
|||||||
*** Now move B to D (C is still replicating from B) ***
|
*** Now move B to D (C is still replicating from B) ***
|
||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
CHANGE MASTER TO master_host = '127.0.0.1', master_port = SERVER_MYPORT_4,
|
CHANGE MASTER TO master_host = '127.0.0.1', master_port = SERVER_MYPORT_4,
|
||||||
MASTER_USE_GTID=1;
|
MASTER_USE_GTID=CURRENT_POS;
|
||||||
include/start_slave.inc
|
include/start_slave.inc
|
||||||
UPDATE t2 SET b="j1a" WHERE a=5;
|
UPDATE t2 SET b="j1a" WHERE a=5;
|
||||||
SELECT * FROM t1 ORDER BY a;
|
SELECT * FROM t1 ORDER BY a;
|
||||||
@ -92,7 +92,7 @@ INSERT INTO t2 VALUES (6, "i6b");
|
|||||||
INSERT INTO t2 VALUES (7, "i7b");
|
INSERT INTO t2 VALUES (7, "i7b");
|
||||||
COMMIT;
|
COMMIT;
|
||||||
CHANGE MASTER TO master_host = '127.0.0.1', master_port = SERVER_MYPORT_4,
|
CHANGE MASTER TO master_host = '127.0.0.1', master_port = SERVER_MYPORT_4,
|
||||||
MASTER_USE_GTID=1;
|
MASTER_USE_GTID=CURRENT_POS;
|
||||||
include/start_slave.inc
|
include/start_slave.inc
|
||||||
SELECT * FROM t2 ORDER BY a;
|
SELECT * FROM t2 ORDER BY a;
|
||||||
a b
|
a b
|
||||||
|
@ -3,12 +3,12 @@ include/rpl_init.inc [topology=1->2]
|
|||||||
call mtr.add_suppression("Checking table:");
|
call mtr.add_suppression("Checking table:");
|
||||||
call mtr.add_suppression("client is using or hasn't closed the table properly");
|
call mtr.add_suppression("client is using or hasn't closed the table properly");
|
||||||
call mtr.add_suppression("Table .* is marked as crashed and should be repaired");
|
call mtr.add_suppression("Table .* is marked as crashed and should be repaired");
|
||||||
ALTER TABLE mysql.rpl_slave_state ENGINE=InnoDB;
|
ALTER TABLE mysql.gtid_slave_pos ENGINE=InnoDB;
|
||||||
CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB;
|
CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB;
|
||||||
INSERT INTO t1 VALUES (1, 0);
|
INSERT INTO t1 VALUES (1, 0);
|
||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
CHANGE MASTER TO master_host = '127.0.0.1', master_port = MASTER_PORT,
|
CHANGE MASTER TO master_host = '127.0.0.1', master_port = MASTER_PORT,
|
||||||
MASTER_USE_GTID=1;
|
MASTER_USE_GTID=CURRENT_POS;
|
||||||
INSERT INTO t1 VALUES (2,1);
|
INSERT INTO t1 VALUES (2,1);
|
||||||
INSERT INTO t1 VALUES (3,1);
|
INSERT INTO t1 VALUES (3,1);
|
||||||
include/start_slave.inc
|
include/start_slave.inc
|
||||||
@ -20,7 +20,7 @@ DROP TABLE t1;
|
|||||||
*** Test crashing the master mysqld and check that binlog state is recovered. ***
|
*** Test crashing the master mysqld and check that binlog state is recovered. ***
|
||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
RESET MASTER;
|
RESET MASTER;
|
||||||
SET GLOBAL gtid_pos='';
|
SET GLOBAL gtid_slave_pos='';
|
||||||
RESET MASTER;
|
RESET MASTER;
|
||||||
SHOW BINLOG EVENTS IN 'master-bin.000001' LIMIT 1,1;
|
SHOW BINLOG EVENTS IN 'master-bin.000001' LIMIT 1,1;
|
||||||
Log_name Pos Event_type Server_id End_log_pos Info
|
Log_name Pos Event_type Server_id End_log_pos Info
|
||||||
|
@ -1,30 +1,30 @@
|
|||||||
include/master-slave.inc
|
include/master-slave.inc
|
||||||
[connection master]
|
[connection master]
|
||||||
*** Test that we check against incorrect table definition for mysql.rpl_slave_state ***
|
*** Test that we check against incorrect table definition for mysql.gtid_slave_pos ***
|
||||||
CREATE TABLE t1(a INT PRIMARY KEY) ENGINE=InnoDB;
|
CREATE TABLE t1(a INT PRIMARY KEY) ENGINE=InnoDB;
|
||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
ALTER TABLE mysql.rpl_slave_state CHANGE seq_no seq_no VARCHAR(20);
|
ALTER TABLE mysql.gtid_slave_pos CHANGE seq_no seq_no VARCHAR(20);
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
INSERT INTO t1 VALUES (1);
|
INSERT INTO t1 VALUES (1);
|
||||||
CALL mtr.add_suppression("Slave: Failed to open mysql.rpl_slave_state");
|
CALL mtr.add_suppression("Slave: Failed to open mysql.gtid_slave_pos");
|
||||||
include/wait_for_slave_sql_error.inc [errno=1942]
|
include/wait_for_slave_sql_error.inc [errno=1942]
|
||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
ALTER TABLE mysql.rpl_slave_state CHANGE seq_no seq_no BIGINT UNSIGNED NOT NULL;
|
ALTER TABLE mysql.gtid_slave_pos CHANGE seq_no seq_no BIGINT UNSIGNED NOT NULL;
|
||||||
ALTER TABLE mysql.rpl_slave_state DROP PRIMARY KEY;
|
ALTER TABLE mysql.gtid_slave_pos DROP PRIMARY KEY;
|
||||||
ALTER TABLE mysql.rpl_slave_state ADD PRIMARY KEY (sub_id, domain_id);
|
ALTER TABLE mysql.gtid_slave_pos ADD PRIMARY KEY (sub_id, domain_id);
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
include/wait_for_slave_sql_error.inc [errno=1942]
|
include/wait_for_slave_sql_error.inc [errno=1942]
|
||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
ALTER TABLE mysql.rpl_slave_state DROP PRIMARY KEY;
|
ALTER TABLE mysql.gtid_slave_pos DROP PRIMARY KEY;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
include/wait_for_slave_sql_error.inc [errno=1942]
|
include/wait_for_slave_sql_error.inc [errno=1942]
|
||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
ALTER TABLE mysql.rpl_slave_state ADD PRIMARY KEY (sub_id);
|
ALTER TABLE mysql.gtid_slave_pos ADD PRIMARY KEY (sub_id);
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
include/wait_for_slave_sql_error.inc [errno=1942]
|
include/wait_for_slave_sql_error.inc [errno=1942]
|
||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
ALTER TABLE mysql.rpl_slave_state DROP PRIMARY KEY;
|
ALTER TABLE mysql.gtid_slave_pos DROP PRIMARY KEY;
|
||||||
ALTER TABLE mysql.rpl_slave_state ADD PRIMARY KEY (domain_id, sub_id);
|
ALTER TABLE mysql.gtid_slave_pos ADD PRIMARY KEY (domain_id, sub_id);
|
||||||
include/start_slave.inc
|
include/start_slave.inc
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
a
|
a
|
||||||
@ -38,13 +38,22 @@ SET sql_log_bin = 0;
|
|||||||
INSERT INTO t1 VALUES (2);
|
INSERT INTO t1 VALUES (2);
|
||||||
SET sql_log_bin = 1;
|
SET sql_log_bin = 1;
|
||||||
INSERT INTO t1 VALUES (3);
|
INSERT INTO t1 VALUES (3);
|
||||||
CHANGE MASTER TO master_use_gtid=1;
|
CHANGE MASTER TO master_use_gtid=current_pos;
|
||||||
SET GLOBAL gtid_pos = "0-1-1";
|
BEGIN;
|
||||||
ERROR HY000: Requested GTID_POS 0-1-1 conflicts with the binary log which contains a more recent GTID 0-2-11. To use the requested GTID_POS, the old binlog must be removed with RESET MASTER to avoid out-of-order binlog
|
SET GLOBAL gtid_slave_pos = "100-100-100";
|
||||||
SET GLOBAL gtid_pos = "";
|
ERROR 25000: You are not allowed to execute this command in a transaction
|
||||||
ERROR HY000: Requested GTID_POS contains no value for replication domain 0. This conflicts with the binary log which contains GTID 0-2-11. To use the requested GTID_POS, the old binlog must be removed with RESET MASTER to avoid out-of-order binlog
|
INSERT INTO t1 VALUES (100);
|
||||||
|
SET GLOBAL gtid_slave_pos = "100-100-100";
|
||||||
|
ERROR 25000: You are not allowed to execute this command in a transaction
|
||||||
|
ROLLBACK;
|
||||||
|
SET GLOBAL gtid_slave_pos = "0-1-1";
|
||||||
|
Warnings:
|
||||||
|
Warning 1947 Specified GTID 0-1-1 conflicts with the binary log which contains a more recent GTID 0-2-11. If MASTER_GTID_POS=CURRENT_POS is used, the binlog position will override the new value of @@gtid_slave_pos.
|
||||||
|
SET GLOBAL gtid_slave_pos = "";
|
||||||
|
Warnings:
|
||||||
|
Warning 1948 Specified value for @@gtid_slave_pos contains no value for replication domain 0. This conflicts with the binary log which contains GTID 0-2-11. If MASTER_GTID_POS=CURRENT_POS is used, the binlog position will override the new value of @@gtid_slave_pos.
|
||||||
RESET MASTER;
|
RESET MASTER;
|
||||||
SET GLOBAL gtid_pos = "0-1-1";
|
SET GLOBAL gtid_slave_pos = "0-1-1";
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
SELECT * FROM t1 ORDER BY a;
|
SELECT * FROM t1 ORDER BY a;
|
||||||
a
|
a
|
||||||
@ -54,7 +63,7 @@ a
|
|||||||
4
|
4
|
||||||
*** Test slave requesting a GTID that is not present in the master's binlog ***
|
*** Test slave requesting a GTID that is not present in the master's binlog ***
|
||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
SET GLOBAL gtid_pos = "0-1-3";
|
SET GLOBAL gtid_slave_pos = "0-1-3";
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
SET sql_log_bin=0;
|
SET sql_log_bin=0;
|
||||||
CALL mtr.add_suppression("Got fatal error .* from master when reading data from binary log: 'Error: connecting slave requested to start from GTID .*, which is not in the master's binlog'");
|
CALL mtr.add_suppression("Got fatal error .* from master when reading data from binary log: 'Error: connecting slave requested to start from GTID .*, which is not in the master's binlog'");
|
||||||
@ -63,9 +72,9 @@ include/wait_for_slave_io_error.inc [errno=1236]
|
|||||||
Slave_IO_State = ''
|
Slave_IO_State = ''
|
||||||
Last_IO_Errno = '1236'
|
Last_IO_Errno = '1236'
|
||||||
Last_IO_Error = 'Got fatal error 1236 from master when reading data from binary log: 'Error: connecting slave requested to start from GTID 0-1-3, which is not in the master's binlog''
|
Last_IO_Error = 'Got fatal error 1236 from master when reading data from binary log: 'Error: connecting slave requested to start from GTID 0-1-3, which is not in the master's binlog''
|
||||||
Using_Gtid = '1'
|
Using_Gtid = 'Current_Pos'
|
||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
SET GLOBAL gtid_pos = "0-1-2";
|
SET GLOBAL gtid_slave_pos = "0-1-2";
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
include/wait_for_slave_to_start.inc
|
include/wait_for_slave_to_start.inc
|
||||||
INSERT INTO t1 VALUES (5);
|
INSERT INTO t1 VALUES (5);
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
include/rpl_init.inc [topology=1->2, 1->3, 1->4, 1->5]
|
include/rpl_init.inc [topology=1->2, 1->3, 1->4, 1->5]
|
||||||
ALTER TABLE mysql.rpl_slave_state ENGINE=InnoDB;
|
ALTER TABLE mysql.gtid_slave_pos ENGINE=InnoDB;
|
||||||
CREATE TABLE t4 (a INT, b INT, PRIMARY KEY (a,b)) Engine=InnoDB;
|
CREATE TABLE t4 (a INT, b INT, PRIMARY KEY (a,b)) Engine=InnoDB;
|
||||||
CREATE FUNCTION extract_gtid(d VARCHAR(100), s VARCHAR(100))
|
CREATE FUNCTION extract_gtid(d VARCHAR(100), s VARCHAR(100))
|
||||||
RETURNS VARCHAR(100) DETERMINISTIC
|
RETURNS VARCHAR(100) DETERMINISTIC
|
||||||
@ -10,13 +10,13 @@ SET s= SUBSTR(s FROM 1 FOR LOCATE(",", s) - 1);
|
|||||||
RETURN s;
|
RETURN s;
|
||||||
END|
|
END|
|
||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
CHANGE MASTER TO master_use_gtid=1;
|
CHANGE MASTER TO master_use_gtid=current_pos;
|
||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
CHANGE MASTER TO master_use_gtid=1;
|
CHANGE MASTER TO master_use_gtid=current_pos;
|
||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
CHANGE MASTER TO master_use_gtid=1;
|
CHANGE MASTER TO master_use_gtid=current_pos;
|
||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
CHANGE MASTER TO master_use_gtid=1;
|
CHANGE MASTER TO master_use_gtid=current_pos;
|
||||||
SET gtid_domain_id= 1;
|
SET gtid_domain_id= 1;
|
||||||
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
|
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
|
||||||
INSERT INTO t1 VALUES (1);
|
INSERT INTO t1 VALUES (1);
|
||||||
@ -310,7 +310,7 @@ a b
|
|||||||
3 5
|
3 5
|
||||||
*** Now let the old master join up as slave. ***
|
*** Now let the old master join up as slave. ***
|
||||||
CHANGE MASTER TO master_host = '127.0.0.1', master_port = SERVER_MYPORT_2,
|
CHANGE MASTER TO master_host = '127.0.0.1', master_port = SERVER_MYPORT_2,
|
||||||
master_user = "root", master_use_gtid = 1;
|
master_user = "root", master_use_gtid = current_pos;
|
||||||
include/start_slave.inc
|
include/start_slave.inc
|
||||||
SELECT * FROM t1 ORDER BY a;
|
SELECT * FROM t1 ORDER BY a;
|
||||||
a
|
a
|
||||||
|
@ -8,7 +8,7 @@ include/stop_slave.inc
|
|||||||
include/wait_for_slave_to_stop.inc
|
include/wait_for_slave_to_stop.inc
|
||||||
reset slave all;
|
reset slave all;
|
||||||
CHANGE MASTER TO master_host = '127.0.0.1', master_port = SERVER_MYPORT_2,
|
CHANGE MASTER TO master_host = '127.0.0.1', master_port = SERVER_MYPORT_2,
|
||||||
master_user='root', MASTER_USE_GTID=1;
|
master_user='root', MASTER_USE_GTID=CURRENT_POS;
|
||||||
include/start_slave.inc
|
include/start_slave.inc
|
||||||
include/wait_for_slave_to_start.inc
|
include/wait_for_slave_to_start.inc
|
||||||
flush logs;
|
flush logs;
|
||||||
@ -16,7 +16,7 @@ insert into t1 values (3);
|
|||||||
insert into t1 values (4);
|
insert into t1 values (4);
|
||||||
flush logs;
|
flush logs;
|
||||||
CHANGE MASTER TO master_host = '127.0.0.1', master_port = SERVER_MYPORT_2,
|
CHANGE MASTER TO master_host = '127.0.0.1', master_port = SERVER_MYPORT_2,
|
||||||
MASTER_USE_GTID=1;
|
MASTER_USE_GTID=CURRENT_POS;
|
||||||
include/start_slave.inc
|
include/start_slave.inc
|
||||||
select * from t1 order by n;
|
select * from t1 order by n;
|
||||||
n
|
n
|
||||||
@ -47,11 +47,11 @@ include/stop_slave.inc
|
|||||||
include/wait_for_slave_to_stop.inc
|
include/wait_for_slave_to_stop.inc
|
||||||
reset slave all;
|
reset slave all;
|
||||||
CHANGE MASTER TO master_host = '127.0.0.1', master_port = SERVER_MYPORT_1,
|
CHANGE MASTER TO master_host = '127.0.0.1', master_port = SERVER_MYPORT_1,
|
||||||
master_user = 'root', MASTER_USE_GTID=1;
|
master_user = 'root', MASTER_USE_GTID=CURRENT_POS;
|
||||||
include/start_slave.inc
|
include/start_slave.inc
|
||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
CHANGE MASTER TO master_host = '127.0.0.1', master_port = SERVER_MYPORT_1,
|
CHANGE MASTER TO master_host = '127.0.0.1', master_port = SERVER_MYPORT_1,
|
||||||
MASTER_USE_GTID=1;
|
MASTER_USE_GTID=CURRENT_POS;
|
||||||
include/start_slave.inc
|
include/start_slave.inc
|
||||||
drop table t1;
|
drop table t1;
|
||||||
include/rpl_end.inc
|
include/rpl_end.inc
|
||||||
|
63
mysql-test/suite/rpl/r/rpl_gtid_mdev4474.result
Normal file
63
mysql-test/suite/rpl/r/rpl_gtid_mdev4474.result
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
include/rpl_init.inc [topology=1->2->1]
|
||||||
|
#
|
||||||
|
# For now we'll only have 1->2 running
|
||||||
|
#
|
||||||
|
# Server 1
|
||||||
|
# Stop replication 2->1
|
||||||
|
include/stop_slave.inc
|
||||||
|
#
|
||||||
|
# Server 2
|
||||||
|
# Use GTID for replication 1->2
|
||||||
|
include/stop_slave.inc
|
||||||
|
change master to master_use_gtid=slave_pos;
|
||||||
|
include/start_slave.inc
|
||||||
|
#
|
||||||
|
# Create some 0-1-* and 0-2-* events in binlog of server 2
|
||||||
|
connection server_1;
|
||||||
|
create table t1 (i int) engine=InnoDB;
|
||||||
|
insert into t1 values (1);
|
||||||
|
connection server_2;
|
||||||
|
create table t2 (i int) engine=InnoDB;
|
||||||
|
connection server_1;
|
||||||
|
insert into t1 values (2);
|
||||||
|
connection server_2;
|
||||||
|
insert into t2 values (1);
|
||||||
|
#
|
||||||
|
# All events are present in the binlog of server 2
|
||||||
|
show binlog events from <binlog_start>;
|
||||||
|
Log_name Pos Event_type Server_id End_log_pos Info
|
||||||
|
slave-bin.000001 # Gtid # # GTID #-#-#
|
||||||
|
slave-bin.000001 # Query # # use `test`; create table t1 (i int) engine=InnoDB
|
||||||
|
slave-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
slave-bin.000001 # Query # # use `test`; insert into t1 values (1)
|
||||||
|
slave-bin.000001 # Xid # # COMMIT /* XID */
|
||||||
|
slave-bin.000001 # Gtid # # GTID #-#-#
|
||||||
|
slave-bin.000001 # Query # # use `test`; create table t2 (i int) engine=InnoDB
|
||||||
|
slave-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
slave-bin.000001 # Query # # use `test`; insert into t1 values (2)
|
||||||
|
slave-bin.000001 # Xid # # COMMIT /* XID */
|
||||||
|
slave-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
slave-bin.000001 # Query # # use `test`; insert into t2 values (1)
|
||||||
|
slave-bin.000001 # Xid # # COMMIT /* XID */
|
||||||
|
#
|
||||||
|
# Server 1
|
||||||
|
# Start replication 2->1 using GTID,
|
||||||
|
change master to master_use_gtid=slave_pos;
|
||||||
|
include/start_slave.inc
|
||||||
|
select * from t1 order by i;
|
||||||
|
i
|
||||||
|
1
|
||||||
|
2
|
||||||
|
select * from t2 order by i;
|
||||||
|
i
|
||||||
|
1
|
||||||
|
select * from t1 order by i;
|
||||||
|
i
|
||||||
|
1
|
||||||
|
2
|
||||||
|
select * from t2 order by i;
|
||||||
|
i
|
||||||
|
1
|
||||||
|
drop table t1;
|
||||||
|
drop table t2;
|
||||||
|
include/rpl_end.inc
|
@ -24,7 +24,7 @@ slave-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
|||||||
slave-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (4, 2)
|
slave-bin.000001 # Query # # use `test`; INSERT INTO t1 VALUES (4, 2)
|
||||||
slave-bin.000001 # Query # # COMMIT
|
slave-bin.000001 # Query # # COMMIT
|
||||||
CHANGE MASTER TO master_host = '127.0.0.1', master_port = SLAVE_PORT,
|
CHANGE MASTER TO master_host = '127.0.0.1', master_port = SLAVE_PORT,
|
||||||
master_user = 'root', master_use_gtid = 1;
|
master_user = 'root', master_use_gtid = current_pos;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
SELECT * FROM t1 ORDER BY a;
|
SELECT * FROM t1 ORDER BY a;
|
||||||
a b
|
a b
|
||||||
@ -37,7 +37,7 @@ RESET SLAVE;
|
|||||||
INSERT INTO t1 VALUES (5, 1);
|
INSERT INTO t1 VALUES (5, 1);
|
||||||
INSERT INTO t1 VALUES (6, 1);
|
INSERT INTO t1 VALUES (6, 1);
|
||||||
CHANGE MASTER TO master_host = '127.0.0.1', master_port = MASTER_PORT,
|
CHANGE MASTER TO master_host = '127.0.0.1', master_port = MASTER_PORT,
|
||||||
master_use_gtid = 1;
|
master_use_gtid = current_pos;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
SELECT * FROM t1 ORDER BY a;
|
SELECT * FROM t1 ORDER BY a;
|
||||||
a b
|
a b
|
||||||
|
@ -6,9 +6,9 @@ RESET SLAVE;
|
|||||||
RESET MASTER;
|
RESET MASTER;
|
||||||
FLUSH LOGS;
|
FLUSH LOGS;
|
||||||
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
|
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
|
||||||
SET GLOBAL gtid_pos="";
|
SET GLOBAL gtid_slave_pos="";
|
||||||
CHANGE MASTER TO master_host = '127.0.0.1', master_port = MASTER_PORT,
|
CHANGE MASTER TO master_host = '127.0.0.1', master_port = MASTER_PORT,
|
||||||
MASTER_USE_GTID=1;
|
MASTER_USE_GTID=CURRENT_POS;
|
||||||
include/start_slave.inc
|
include/start_slave.inc
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
a
|
a
|
||||||
@ -24,9 +24,9 @@ include/wait_for_purge.inc "master-bin.000003"
|
|||||||
show binary logs;
|
show binary logs;
|
||||||
Log_name File_size
|
Log_name File_size
|
||||||
master-bin.000003 #
|
master-bin.000003 #
|
||||||
SET GLOBAL gtid_pos="";
|
SET GLOBAL gtid_slave_pos="";
|
||||||
CHANGE MASTER TO master_host = '127.0.0.1', master_port = MASTER_PORT,
|
CHANGE MASTER TO master_host = '127.0.0.1', master_port = MASTER_PORT,
|
||||||
MASTER_USE_GTID=1;
|
MASTER_USE_GTID=CURRENT_POS;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
include/wait_for_slave_io_error.inc [errno=1236]
|
include/wait_for_slave_io_error.inc [errno=1236]
|
||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
@ -40,12 +40,12 @@ a
|
|||||||
SET sql_log_bin=0;
|
SET sql_log_bin=0;
|
||||||
call mtr.add_suppression('Could not find GTID state requested by slave in any binlog files');
|
call mtr.add_suppression('Could not find GTID state requested by slave in any binlog files');
|
||||||
SET sql_log_bin=1;
|
SET sql_log_bin=1;
|
||||||
*** Test that we give error when explict @@gtid_pos=xxx that conflicts with what is in our binary log ***
|
*** Test that we give warning when explict @@gtid_slave_pos=xxx that conflicts with what is in our binary log ***
|
||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
INSERT INTO t1 VALUES(3);
|
INSERT INTO t1 VALUES(3);
|
||||||
SET GLOBAL gtid_pos='0-1-3';
|
SET GLOBAL gtid_slave_pos='0-1-3';
|
||||||
CHANGE MASTER TO master_host = '127.0.0.1', master_port = MASTER_PORT,
|
CHANGE MASTER TO master_host = '127.0.0.1', master_port = MASTER_PORT,
|
||||||
MASTER_USE_GTID=1;
|
MASTER_USE_GTID=CURRENT_POS;
|
||||||
include/start_slave.inc
|
include/start_slave.inc
|
||||||
SELECT * FROM t1 ORDER by a;
|
SELECT * FROM t1 ORDER by a;
|
||||||
a
|
a
|
||||||
@ -56,10 +56,11 @@ include/stop_slave.inc
|
|||||||
INSERT INTO t1 VALUES (4);
|
INSERT INTO t1 VALUES (4);
|
||||||
INSERT INTO t1 VALUES (10);
|
INSERT INTO t1 VALUES (10);
|
||||||
DELETE FROM t1 WHERE a=10;
|
DELETE FROM t1 WHERE a=10;
|
||||||
SET GLOBAL gtid_pos='0-1-4';
|
SET GLOBAL gtid_slave_pos='0-1-4';
|
||||||
ERROR HY000: Requested GTID_POS 0-1-4 conflicts with the binary log which contains a more recent GTID 0-2-6. To use the requested GTID_POS, the old binlog must be removed with RESET MASTER to avoid out-of-order binlog
|
Warnings:
|
||||||
|
Warning 1947 Specified GTID 0-1-4 conflicts with the binary log which contains a more recent GTID 0-2-6. If MASTER_GTID_POS=CURRENT_POS is used, the binlog position will override the new value of @@gtid_slave_pos.
|
||||||
RESET MASTER;
|
RESET MASTER;
|
||||||
SET GLOBAL gtid_pos='0-1-4';
|
SET GLOBAL gtid_slave_pos='0-1-4';
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
SELECT * FROM t1 ORDER by a;
|
SELECT * FROM t1 ORDER by a;
|
||||||
a
|
a
|
||||||
@ -73,8 +74,8 @@ include/stop_slave.inc
|
|||||||
RESET SLAVE ALL;
|
RESET SLAVE ALL;
|
||||||
RESET MASTER;
|
RESET MASTER;
|
||||||
RESET MASTER;
|
RESET MASTER;
|
||||||
SET GLOBAL gtid_pos='';
|
SET GLOBAL gtid_slave_pos='';
|
||||||
CHANGE MASTER TO master_host='127.0.0.1', master_port=MASTER_PORT, master_user='root', master_use_gtid=1;
|
CHANGE MASTER TO master_host='127.0.0.1', master_port=MASTER_PORT, master_user='root', master_use_gtid=current_pos;
|
||||||
include/start_slave.inc
|
include/start_slave.inc
|
||||||
CREATE TABLE t1 (a INT PRIMARY KEY);
|
CREATE TABLE t1 (a INT PRIMARY KEY);
|
||||||
INSERT INTO t1 VALUES (1);
|
INSERT INTO t1 VALUES (1);
|
||||||
@ -89,14 +90,15 @@ SELECT * FROM t1 ORDER BY a;
|
|||||||
a
|
a
|
||||||
1
|
1
|
||||||
2
|
2
|
||||||
*** MDEV-4329: GTID_POS='' is not checked for conflicts with binlog ***
|
*** MDEV-4329: GTID_SLAVE_POS='' is not checked for conflicts with binlog ***
|
||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
RESET SLAVE;
|
RESET SLAVE;
|
||||||
SET GLOBAL gtid_pos="";
|
SET GLOBAL gtid_slave_pos="";
|
||||||
ERROR HY000: Requested GTID_POS contains no value for replication domain 0. This conflicts with the binary log which contains GTID 0-2-4. To use the requested GTID_POS, the old binlog must be removed with RESET MASTER to avoid out-of-order binlog
|
Warnings:
|
||||||
|
Warning 1948 Specified value for @@gtid_slave_pos contains no value for replication domain 0. This conflicts with the binary log which contains GTID 0-2-4. If MASTER_GTID_POS=CURRENT_POS is used, the binlog position will override the new value of @@gtid_slave_pos.
|
||||||
RESET MASTER;
|
RESET MASTER;
|
||||||
SET GLOBAL gtid_pos="";
|
SET GLOBAL gtid_slave_pos="";
|
||||||
include/start_slave.inc
|
include/start_slave.inc
|
||||||
SELECT * FROM t1 ORDER BY a;
|
SELECT * FROM t1 ORDER BY a;
|
||||||
a
|
a
|
||||||
@ -107,7 +109,7 @@ SET SQL_LOG_BIN=0;
|
|||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
SET SQL_LOG_BIN=1;
|
SET SQL_LOG_BIN=1;
|
||||||
RESET SLAVE;
|
RESET SLAVE;
|
||||||
SET GLOBAL gtid_pos="";
|
SET GLOBAL gtid_slave_pos="";
|
||||||
include/start_slave.inc
|
include/start_slave.inc
|
||||||
SELECT * FROM t1 ORDER BY a;
|
SELECT * FROM t1 ORDER BY a;
|
||||||
a
|
a
|
||||||
@ -116,11 +118,11 @@ a
|
|||||||
*** Test that RESET SLAVE clears the Using_Gtid flag. ***
|
*** Test that RESET SLAVE clears the Using_Gtid flag. ***
|
||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
RESET SLAVE;
|
RESET SLAVE;
|
||||||
Using_Gtid = '0'
|
Using_Gtid = 'No'
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
include/wait_for_slave_sql_error.inc [errno=1050]
|
include/wait_for_slave_sql_error.inc [errno=1050]
|
||||||
STOP SLAVE IO_THREAD;
|
STOP SLAVE IO_THREAD;
|
||||||
CHANGE MASTER TO MASTER_USE_GTID=1;
|
CHANGE MASTER TO MASTER_USE_GTID=CURRENT_POS;
|
||||||
include/start_slave.inc
|
include/start_slave.inc
|
||||||
INSERT INTO t1 VALUES(3);
|
INSERT INTO t1 VALUES(3);
|
||||||
SELECT * FROM t1 ORDER BY a;
|
SELECT * FROM t1 ORDER BY a;
|
||||||
@ -154,7 +156,7 @@ a
|
|||||||
*** Test modifying binlog on slave and the effect on GTID state. ***
|
*** Test modifying binlog on slave and the effect on GTID state. ***
|
||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
RESET MASTER;
|
RESET MASTER;
|
||||||
SET GLOBAL gtid_pos="";
|
SET GLOBAL gtid_slave_pos="";
|
||||||
RESET MASTER;
|
RESET MASTER;
|
||||||
TRUNCATE TABLE t1;
|
TRUNCATE TABLE t1;
|
||||||
INSERT INTO t1 VALUES (10);
|
INSERT INTO t1 VALUES (10);
|
||||||
@ -162,28 +164,29 @@ include/start_slave.inc
|
|||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
a
|
a
|
||||||
10
|
10
|
||||||
SELECT '1' AS Using_Gtid;
|
SELECT 'Current_Pos' AS Using_Gtid;
|
||||||
Using_Gtid
|
Using_Gtid
|
||||||
1
|
Current_Pos
|
||||||
SELECT '0-1-2' AS Gtid_Pos;
|
SELECT '0-1-2' AS Gtid_Slave_Pos;
|
||||||
Gtid_Pos
|
Gtid_Slave_Pos
|
||||||
0-1-2
|
0-1-2
|
||||||
UPDATE t1 SET a=9 WHERE a=10;
|
UPDATE t1 SET a=9 WHERE a=10;
|
||||||
UPDATE t1 SET a=10 WHERE a=9;
|
UPDATE t1 SET a=10 WHERE a=9;
|
||||||
SELECT '0-2-4' AS Gtid_Pos;
|
SELECT '0-2-4' AS Gtid_Slave_Pos;
|
||||||
Gtid_Pos
|
Gtid_Slave_Pos
|
||||||
0-2-4
|
0-2-4
|
||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
SET GLOBAL gtid_pos='0-1-2';
|
SET GLOBAL gtid_slave_pos='0-1-2';
|
||||||
ERROR HY000: Requested GTID_POS 0-1-2 conflicts with the binary log which contains a more recent GTID 0-2-4. To use the requested GTID_POS, the old binlog must be removed with RESET MASTER to avoid out-of-order binlog
|
Warnings:
|
||||||
|
Warning 1947 Specified GTID 0-1-2 conflicts with the binary log which contains a more recent GTID 0-2-4. If MASTER_GTID_POS=CURRENT_POS is used, the binlog position will override the new value of @@gtid_slave_pos.
|
||||||
RESET MASTER;
|
RESET MASTER;
|
||||||
SELECT '0-1-2' AS Gtid_Pos;
|
SELECT '0-1-2' AS Gtid_Slave_Pos;
|
||||||
Gtid_Pos
|
Gtid_Slave_Pos
|
||||||
0-1-2
|
0-1-2
|
||||||
SET GLOBAL gtid_pos='0-1-2';
|
SET GLOBAL gtid_slave_pos='0-1-2';
|
||||||
include/start_slave.inc
|
include/start_slave.inc
|
||||||
SELECT '0-1-2' AS Gtid_Pos;
|
SELECT '0-1-2' AS Gtid_Slave_Pos;
|
||||||
Gtid_Pos
|
Gtid_Slave_Pos
|
||||||
0-1-2
|
0-1-2
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
include/rpl_end.inc
|
include/rpl_end.inc
|
||||||
|
@ -4,8 +4,8 @@ CREATE TABLE t1 (a INT PRIMARY KEY);
|
|||||||
INSERT INTO t1 VALUES (1);
|
INSERT INTO t1 VALUES (1);
|
||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
Master_Log_File = 'master-bin.000001'
|
Master_Log_File = 'master-bin.000001'
|
||||||
Using_Gtid = '0'
|
Using_Gtid = 'No'
|
||||||
CHANGE MASTER TO master_use_gtid=1;
|
CHANGE MASTER TO master_use_gtid=current_pos;
|
||||||
FLUSH LOGS;
|
FLUSH LOGS;
|
||||||
include/wait_for_purge.inc "master-bin.000002"
|
include/wait_for_purge.inc "master-bin.000002"
|
||||||
show binary logs;
|
show binary logs;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
include/rpl_init.inc [topology=1->2]
|
include/rpl_init.inc [topology=1->2]
|
||||||
ALTER TABLE mysql.rpl_slave_state ENGINE=InnoDB;
|
ALTER TABLE mysql.gtid_slave_pos ENGINE=InnoDB;
|
||||||
CREATE FUNCTION extract_gtid(d VARCHAR(100), s VARCHAR(100))
|
CREATE FUNCTION extract_gtid(d VARCHAR(100), s VARCHAR(100))
|
||||||
RETURNS VARCHAR(100) DETERMINISTIC
|
RETURNS VARCHAR(100) DETERMINISTIC
|
||||||
BEGIN
|
BEGIN
|
||||||
@ -21,7 +21,7 @@ ERROR HY000: Slave is already running
|
|||||||
include/stop_slave_io.inc
|
include/stop_slave_io.inc
|
||||||
START SLAVE UNTIL master_gtid_pos = "";
|
START SLAVE UNTIL master_gtid_pos = "";
|
||||||
ERROR HY000: START SLAVE UNTIL master_gtid_pos requires that slave is using GTID
|
ERROR HY000: START SLAVE UNTIL master_gtid_pos requires that slave is using GTID
|
||||||
CHANGE MASTER TO master_use_gtid=1;
|
CHANGE MASTER TO master_use_gtid=current_pos;
|
||||||
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
|
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
|
||||||
INSERT INTO t1 VALUES(1);
|
INSERT INTO t1 VALUES(1);
|
||||||
INSERT INTO t1 VALUES(2);
|
INSERT INTO t1 VALUES(2);
|
||||||
@ -46,7 +46,7 @@ a
|
|||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
START SLAVE UNTIL master_gtid_pos = "1-10-100,2-20-200";
|
START SLAVE UNTIL master_gtid_pos = "1-10-100,2-20-200";
|
||||||
include/wait_for_slave_to_start.inc
|
include/wait_for_slave_to_start.inc
|
||||||
Using_Gtid = '1'
|
Using_Gtid = 'Current_Pos'
|
||||||
Until_Condition = 'Gtid'
|
Until_Condition = 'Gtid'
|
||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
include/start_slave.inc
|
include/start_slave.inc
|
||||||
@ -168,7 +168,7 @@ a
|
|||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
CREATE TABLE t3 (a INT);
|
CREATE TABLE t3 (a INT);
|
||||||
DROP TABLE t3;
|
DROP TABLE t3;
|
||||||
START SLAVE UNTIL master_gtid_pos='1-1-15,0-1-16,2-1-14';
|
START SLAVE UNTIL master_gtid_pos='1-1-15,2-1-14,0-1-16';
|
||||||
include/wait_for_slave_to_stop.inc
|
include/wait_for_slave_to_stop.inc
|
||||||
SHOW CREATE TABLE t3;
|
SHOW CREATE TABLE t3;
|
||||||
Table Create Table
|
Table Create Table
|
||||||
@ -180,7 +180,7 @@ include/start_slave.inc
|
|||||||
include/stop_slave.inc
|
include/stop_slave.inc
|
||||||
RESET SLAVE ALL;
|
RESET SLAVE ALL;
|
||||||
RESET MASTER;
|
RESET MASTER;
|
||||||
SET GLOBAL gtid_pos='';
|
SET GLOBAL gtid_slave_pos='';
|
||||||
RESET MASTER;
|
RESET MASTER;
|
||||||
INSERT INTO t1 VALUES (10);
|
INSERT INTO t1 VALUES (10);
|
||||||
INSERT INTO t1 VALUES (11);
|
INSERT INTO t1 VALUES (11);
|
||||||
@ -189,7 +189,7 @@ DELETE FROM t1 WHERE a >= 10;
|
|||||||
RESET MASTER;
|
RESET MASTER;
|
||||||
INSERT INTO t1 VALUES (10);
|
INSERT INTO t1 VALUES (10);
|
||||||
CHANGE MASTER TO master_host = '127.0.0.1', master_port = SERVER_MYPORT_1,
|
CHANGE MASTER TO master_host = '127.0.0.1', master_port = SERVER_MYPORT_1,
|
||||||
master_user = "root", master_use_gtid = 1;
|
master_user = "root", master_use_gtid = current_pos;
|
||||||
START SLAVE UNTIL master_gtid_pos = '0-1-2';
|
START SLAVE UNTIL master_gtid_pos = '0-1-2';
|
||||||
include/wait_for_slave_to_start.inc
|
include/wait_for_slave_to_start.inc
|
||||||
INSERT INTO t1 VALUES (11);
|
INSERT INTO t1 VALUES (11);
|
||||||
|
@ -3,7 +3,7 @@ include/master-slave.inc
|
|||||||
[connection master]
|
[connection master]
|
||||||
call mtr.add_suppression('Attempting backtrace');
|
call mtr.add_suppression('Attempting backtrace');
|
||||||
call mtr.add_suppression("Recovery from master pos .* and file master-bin.000001");
|
call mtr.add_suppression("Recovery from master pos .* and file master-bin.000001");
|
||||||
ALTER TABLE mysql.rpl_slave_state ENGINE=InnoDB;
|
ALTER TABLE mysql.gtid_slave_pos ENGINE=InnoDB;
|
||||||
flush tables;
|
flush tables;
|
||||||
CREATE TABLE t1(a INT, PRIMARY KEY(a)) engine=innodb;
|
CREATE TABLE t1(a INT, PRIMARY KEY(a)) engine=innodb;
|
||||||
insert into t1(a) values(1);
|
insert into t1(a) values(1);
|
||||||
|
@ -49,7 +49,7 @@ save_master_pos;
|
|||||||
connection server_4;
|
connection server_4;
|
||||||
--replace_result $MASTER_MYPORT MASTER_PORT
|
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||||
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $MASTER_MYPORT,
|
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $MASTER_MYPORT,
|
||||||
MASTER_USE_GTID=1;
|
MASTER_USE_GTID=CURRENT_POS;
|
||||||
--source include/start_slave.inc
|
--source include/start_slave.inc
|
||||||
sync_with_master;
|
sync_with_master;
|
||||||
SELECT * FROM t1 ORDER BY a;
|
SELECT * FROM t1 ORDER BY a;
|
||||||
@ -60,7 +60,7 @@ connection server_2;
|
|||||||
--source include/stop_slave.inc
|
--source include/stop_slave.inc
|
||||||
--replace_result $SERVER_MYPORT_4 SERVER_MYPORT_4
|
--replace_result $SERVER_MYPORT_4 SERVER_MYPORT_4
|
||||||
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $SERVER_MYPORT_4,
|
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $SERVER_MYPORT_4,
|
||||||
MASTER_USE_GTID=1;
|
MASTER_USE_GTID=CURRENT_POS;
|
||||||
--source include/start_slave.inc
|
--source include/start_slave.inc
|
||||||
|
|
||||||
connection server_4;
|
connection server_4;
|
||||||
@ -85,7 +85,7 @@ COMMIT;
|
|||||||
connection server_3;
|
connection server_3;
|
||||||
--replace_result $SERVER_MYPORT_4 SERVER_MYPORT_4
|
--replace_result $SERVER_MYPORT_4 SERVER_MYPORT_4
|
||||||
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $SERVER_MYPORT_4,
|
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $SERVER_MYPORT_4,
|
||||||
MASTER_USE_GTID=1;
|
MASTER_USE_GTID=CURRENT_POS;
|
||||||
--source include/start_slave.inc
|
--source include/start_slave.inc
|
||||||
# This time, let's sync up without reference to binlog on D.
|
# This time, let's sync up without reference to binlog on D.
|
||||||
--let $wait_condition= SELECT COUNT(*) = 7 FROM t2
|
--let $wait_condition= SELECT COUNT(*) = 7 FROM t2
|
||||||
@ -93,7 +93,7 @@ eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $SERVER_MYPORT_4,
|
|||||||
SELECT * FROM t2 ORDER BY a;
|
SELECT * FROM t2 ORDER BY a;
|
||||||
|
|
||||||
--echo *** Now change everything back to what it was, to make rpl_end.inc happy
|
--echo *** Now change everything back to what it was, to make rpl_end.inc happy
|
||||||
# Also check that MASTER_USE_GTID=1 is still enabled.
|
# Also check that MASTER_USE_GTID=CURRENT_POS is still enabled.
|
||||||
connection server_2;
|
connection server_2;
|
||||||
# We need to sync up server_2 before switching. If it happened to have reached
|
# We need to sync up server_2 before switching. If it happened to have reached
|
||||||
# the point 'UPDATE t2 SET b="j1a" WHERE a=5' it will fail to connect to
|
# the point 'UPDATE t2 SET b="j1a" WHERE a=5' it will fail to connect to
|
||||||
|
@ -13,7 +13,7 @@ call mtr.add_suppression("Checking table:");
|
|||||||
call mtr.add_suppression("client is using or hasn't closed the table properly");
|
call mtr.add_suppression("client is using or hasn't closed the table properly");
|
||||||
call mtr.add_suppression("Table .* is marked as crashed and should be repaired");
|
call mtr.add_suppression("Table .* is marked as crashed and should be repaired");
|
||||||
|
|
||||||
ALTER TABLE mysql.rpl_slave_state ENGINE=InnoDB;
|
ALTER TABLE mysql.gtid_slave_pos ENGINE=InnoDB;
|
||||||
CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB;
|
CREATE TABLE t1 (a INT PRIMARY KEY, b INT) ENGINE=InnoDB;
|
||||||
INSERT INTO t1 VALUES (1, 0);
|
INSERT INTO t1 VALUES (1, 0);
|
||||||
--save_master_pos
|
--save_master_pos
|
||||||
@ -23,7 +23,7 @@ INSERT INTO t1 VALUES (1, 0);
|
|||||||
--source include/stop_slave.inc
|
--source include/stop_slave.inc
|
||||||
--replace_result $MASTER_MYPORT MASTER_PORT
|
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||||
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $MASTER_MYPORT,
|
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $MASTER_MYPORT,
|
||||||
MASTER_USE_GTID=1;
|
MASTER_USE_GTID=CURRENT_POS;
|
||||||
|
|
||||||
--connection server_1
|
--connection server_1
|
||||||
INSERT INTO t1 VALUES (2,1);
|
INSERT INTO t1 VALUES (2,1);
|
||||||
@ -79,7 +79,7 @@ DROP TABLE t1;
|
|||||||
--sync_with_master
|
--sync_with_master
|
||||||
--source include/stop_slave.inc
|
--source include/stop_slave.inc
|
||||||
RESET MASTER;
|
RESET MASTER;
|
||||||
SET GLOBAL gtid_pos='';
|
SET GLOBAL gtid_slave_pos='';
|
||||||
|
|
||||||
--connection server_1
|
--connection server_1
|
||||||
RESET MASTER;
|
RESET MASTER;
|
||||||
@ -130,7 +130,7 @@ SELECT * FROM t1 ORDER BY a;
|
|||||||
|
|
||||||
--echo *** Test crashing slave at various points and check that it recovers crash-safe. ***
|
--echo *** Test crashing slave at various points and check that it recovers crash-safe. ***
|
||||||
|
|
||||||
# Crash the slave just before updating mysql.rpl_slave_state table.
|
# Crash the slave just before updating mysql.gtid_slave_pos table.
|
||||||
--source include/stop_slave.inc
|
--source include/stop_slave.inc
|
||||||
--write_file $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
|
--write_file $MYSQLTEST_VARDIR/tmp/mysqld.2.expect
|
||||||
wait
|
wait
|
||||||
|
@ -2,47 +2,47 @@
|
|||||||
--source include/have_debug.inc
|
--source include/have_debug.inc
|
||||||
--source include/master-slave.inc
|
--source include/master-slave.inc
|
||||||
|
|
||||||
--echo *** Test that we check against incorrect table definition for mysql.rpl_slave_state ***
|
--echo *** Test that we check against incorrect table definition for mysql.gtid_slave_pos ***
|
||||||
--connection master
|
--connection master
|
||||||
CREATE TABLE t1(a INT PRIMARY KEY) ENGINE=InnoDB;
|
CREATE TABLE t1(a INT PRIMARY KEY) ENGINE=InnoDB;
|
||||||
--sync_slave_with_master
|
--sync_slave_with_master
|
||||||
|
|
||||||
--connection slave
|
--connection slave
|
||||||
--source include/stop_slave.inc
|
--source include/stop_slave.inc
|
||||||
ALTER TABLE mysql.rpl_slave_state CHANGE seq_no seq_no VARCHAR(20);
|
ALTER TABLE mysql.gtid_slave_pos CHANGE seq_no seq_no VARCHAR(20);
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
|
|
||||||
--connection master
|
--connection master
|
||||||
INSERT INTO t1 VALUES (1);
|
INSERT INTO t1 VALUES (1);
|
||||||
|
|
||||||
--connection slave
|
--connection slave
|
||||||
CALL mtr.add_suppression("Slave: Failed to open mysql.rpl_slave_state");
|
CALL mtr.add_suppression("Slave: Failed to open mysql.gtid_slave_pos");
|
||||||
--let $slave_sql_errno=1942
|
--let $slave_sql_errno=1942
|
||||||
--source include/wait_for_slave_sql_error.inc
|
--source include/wait_for_slave_sql_error.inc
|
||||||
|
|
||||||
--source include/stop_slave.inc
|
--source include/stop_slave.inc
|
||||||
ALTER TABLE mysql.rpl_slave_state CHANGE seq_no seq_no BIGINT UNSIGNED NOT NULL;
|
ALTER TABLE mysql.gtid_slave_pos CHANGE seq_no seq_no BIGINT UNSIGNED NOT NULL;
|
||||||
ALTER TABLE mysql.rpl_slave_state DROP PRIMARY KEY;
|
ALTER TABLE mysql.gtid_slave_pos DROP PRIMARY KEY;
|
||||||
ALTER TABLE mysql.rpl_slave_state ADD PRIMARY KEY (sub_id, domain_id);
|
ALTER TABLE mysql.gtid_slave_pos ADD PRIMARY KEY (sub_id, domain_id);
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
--let $slave_sql_errno=1942
|
--let $slave_sql_errno=1942
|
||||||
--source include/wait_for_slave_sql_error.inc
|
--source include/wait_for_slave_sql_error.inc
|
||||||
|
|
||||||
--source include/stop_slave.inc
|
--source include/stop_slave.inc
|
||||||
ALTER TABLE mysql.rpl_slave_state DROP PRIMARY KEY;
|
ALTER TABLE mysql.gtid_slave_pos DROP PRIMARY KEY;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
--let $slave_sql_errno=1942
|
--let $slave_sql_errno=1942
|
||||||
--source include/wait_for_slave_sql_error.inc
|
--source include/wait_for_slave_sql_error.inc
|
||||||
|
|
||||||
--source include/stop_slave.inc
|
--source include/stop_slave.inc
|
||||||
ALTER TABLE mysql.rpl_slave_state ADD PRIMARY KEY (sub_id);
|
ALTER TABLE mysql.gtid_slave_pos ADD PRIMARY KEY (sub_id);
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
--let $slave_sql_errno=1942
|
--let $slave_sql_errno=1942
|
||||||
--source include/wait_for_slave_sql_error.inc
|
--source include/wait_for_slave_sql_error.inc
|
||||||
|
|
||||||
--source include/stop_slave.inc
|
--source include/stop_slave.inc
|
||||||
ALTER TABLE mysql.rpl_slave_state DROP PRIMARY KEY;
|
ALTER TABLE mysql.gtid_slave_pos DROP PRIMARY KEY;
|
||||||
ALTER TABLE mysql.rpl_slave_state ADD PRIMARY KEY (domain_id, sub_id);
|
ALTER TABLE mysql.gtid_slave_pos ADD PRIMARY KEY (domain_id, sub_id);
|
||||||
--source include/start_slave.inc
|
--source include/start_slave.inc
|
||||||
|
|
||||||
--connection master
|
--connection master
|
||||||
@ -69,13 +69,22 @@ INSERT INTO t1 VALUES (2);
|
|||||||
SET sql_log_bin = 1;
|
SET sql_log_bin = 1;
|
||||||
INSERT INTO t1 VALUES (3);
|
INSERT INTO t1 VALUES (3);
|
||||||
|
|
||||||
CHANGE MASTER TO master_use_gtid=1;
|
CHANGE MASTER TO master_use_gtid=current_pos;
|
||||||
--error ER_MASTER_GTID_POS_CONFLICTS_WITH_BINLOG
|
# Most not change @@GLOBAL.gtid_slave_pos in the middle of a transaction.
|
||||||
SET GLOBAL gtid_pos = "0-1-1";
|
BEGIN;
|
||||||
--error ER_MASTER_GTID_POS_MISSING_DOMAIN
|
--error ER_CANT_DO_THIS_DURING_AN_TRANSACTION
|
||||||
SET GLOBAL gtid_pos = "";
|
SET GLOBAL gtid_slave_pos = "100-100-100";
|
||||||
|
INSERT INTO t1 VALUES (100);
|
||||||
|
--error ER_CANT_DO_THIS_DURING_AN_TRANSACTION
|
||||||
|
SET GLOBAL gtid_slave_pos = "100-100-100";
|
||||||
|
ROLLBACK;
|
||||||
|
|
||||||
|
# In gtid non-strict mode, we get warnings for setting @@gtid_slave_pos back
|
||||||
|
# to earlier than what is in the binlog.
|
||||||
|
SET GLOBAL gtid_slave_pos = "0-1-1";
|
||||||
|
SET GLOBAL gtid_slave_pos = "";
|
||||||
RESET MASTER;
|
RESET MASTER;
|
||||||
SET GLOBAL gtid_pos = "0-1-1";
|
SET GLOBAL gtid_slave_pos = "0-1-1";
|
||||||
|
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
--let $wait_condition= SELECT COUNT(*) = 4 FROM t1
|
--let $wait_condition= SELECT COUNT(*) = 4 FROM t1
|
||||||
@ -85,7 +94,7 @@ SELECT * FROM t1 ORDER BY a;
|
|||||||
|
|
||||||
--echo *** Test slave requesting a GTID that is not present in the master's binlog ***
|
--echo *** Test slave requesting a GTID that is not present in the master's binlog ***
|
||||||
--source include/stop_slave.inc
|
--source include/stop_slave.inc
|
||||||
SET GLOBAL gtid_pos = "0-1-3";
|
SET GLOBAL gtid_slave_pos = "0-1-3";
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
|
|
||||||
SET sql_log_bin=0;
|
SET sql_log_bin=0;
|
||||||
@ -98,7 +107,7 @@ SET sql_log_bin=1;
|
|||||||
|
|
||||||
--let $rpl_only_running_threads= 1
|
--let $rpl_only_running_threads= 1
|
||||||
--source include/stop_slave.inc
|
--source include/stop_slave.inc
|
||||||
SET GLOBAL gtid_pos = "0-1-2";
|
SET GLOBAL gtid_slave_pos = "0-1-2";
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
--source include/wait_for_slave_to_start.inc
|
--source include/wait_for_slave_to_start.inc
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
# using START SLAVE UNTIL master_gtid_pos.
|
# using START SLAVE UNTIL master_gtid_pos.
|
||||||
|
|
||||||
--connection server_1
|
--connection server_1
|
||||||
ALTER TABLE mysql.rpl_slave_state ENGINE=InnoDB;
|
ALTER TABLE mysql.gtid_slave_pos ENGINE=InnoDB;
|
||||||
CREATE TABLE t4 (a INT, b INT, PRIMARY KEY (a,b)) Engine=InnoDB;
|
CREATE TABLE t4 (a INT, b INT, PRIMARY KEY (a,b)) Engine=InnoDB;
|
||||||
|
|
||||||
# Function to extract one GTID from a list.
|
# Function to extract one GTID from a list.
|
||||||
@ -31,22 +31,22 @@ delimiter ;|
|
|||||||
--connection server_2
|
--connection server_2
|
||||||
--sync_with_master
|
--sync_with_master
|
||||||
--source include/stop_slave.inc
|
--source include/stop_slave.inc
|
||||||
CHANGE MASTER TO master_use_gtid=1;
|
CHANGE MASTER TO master_use_gtid=current_pos;
|
||||||
|
|
||||||
--connection server_3
|
--connection server_3
|
||||||
--sync_with_master
|
--sync_with_master
|
||||||
--source include/stop_slave.inc
|
--source include/stop_slave.inc
|
||||||
CHANGE MASTER TO master_use_gtid=1;
|
CHANGE MASTER TO master_use_gtid=current_pos;
|
||||||
|
|
||||||
--connection server_4
|
--connection server_4
|
||||||
--sync_with_master
|
--sync_with_master
|
||||||
--source include/stop_slave.inc
|
--source include/stop_slave.inc
|
||||||
CHANGE MASTER TO master_use_gtid=1;
|
CHANGE MASTER TO master_use_gtid=current_pos;
|
||||||
|
|
||||||
--connection server_5
|
--connection server_5
|
||||||
--sync_with_master
|
--sync_with_master
|
||||||
--source include/stop_slave.inc
|
--source include/stop_slave.inc
|
||||||
CHANGE MASTER TO master_use_gtid=1;
|
CHANGE MASTER TO master_use_gtid=current_pos;
|
||||||
|
|
||||||
|
|
||||||
# Create three separate replication streams on master server_1.
|
# Create three separate replication streams on master server_1.
|
||||||
@ -59,39 +59,39 @@ CHANGE MASTER TO master_use_gtid=1;
|
|||||||
|
|
||||||
SET gtid_domain_id= 1;
|
SET gtid_domain_id= 1;
|
||||||
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
|
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
|
||||||
--let $d1_begin= `SELECT extract_gtid("1", @@GLOBAL.gtid_pos)`
|
--let $d1_begin= `SELECT extract_gtid("1", @@GLOBAL.gtid_binlog_pos)`
|
||||||
INSERT INTO t1 VALUES (1);
|
INSERT INTO t1 VALUES (1);
|
||||||
INSERT INTO t1 VALUES (2);
|
INSERT INTO t1 VALUES (2);
|
||||||
INSERT INTO t4 VALUES (1, 1);
|
INSERT INTO t4 VALUES (1, 1);
|
||||||
--let $d1_mid= `SELECT extract_gtid("1", @@GLOBAL.gtid_pos)`
|
--let $d1_mid= `SELECT extract_gtid("1", @@GLOBAL.gtid_binlog_pos)`
|
||||||
INSERT INTO t1 VALUES (3);
|
INSERT INTO t1 VALUES (3);
|
||||||
INSERT INTO t1 VALUES (4);
|
INSERT INTO t1 VALUES (4);
|
||||||
INSERT INTO t4 VALUES (1, 3);
|
INSERT INTO t4 VALUES (1, 3);
|
||||||
--let $d1_end= `SELECT extract_gtid("1", @@GLOBAL.gtid_pos)`
|
--let $d1_end= `SELECT extract_gtid("1", @@GLOBAL.gtid_binlog_pos)`
|
||||||
|
|
||||||
SET gtid_domain_id= 2;
|
SET gtid_domain_id= 2;
|
||||||
CREATE TABLE t2 (a INT PRIMARY KEY) ENGINE=InnoDB;
|
CREATE TABLE t2 (a INT PRIMARY KEY) ENGINE=InnoDB;
|
||||||
--let $d2_begin= `SELECT extract_gtid("2", @@GLOBAL.gtid_pos)`
|
--let $d2_begin= `SELECT extract_gtid("2", @@GLOBAL.gtid_binlog_pos)`
|
||||||
INSERT INTO t2 VALUES (1);
|
INSERT INTO t2 VALUES (1);
|
||||||
INSERT INTO t2 VALUES (2);
|
INSERT INTO t2 VALUES (2);
|
||||||
INSERT INTO t4 VALUES (2, 1);
|
INSERT INTO t4 VALUES (2, 1);
|
||||||
--let $d2_mid= `SELECT extract_gtid("2", @@GLOBAL.gtid_pos)`
|
--let $d2_mid= `SELECT extract_gtid("2", @@GLOBAL.gtid_binlog_pos)`
|
||||||
INSERT INTO t2 VALUES (3);
|
INSERT INTO t2 VALUES (3);
|
||||||
INSERT INTO t2 VALUES (4);
|
INSERT INTO t2 VALUES (4);
|
||||||
INSERT INTO t4 VALUES (2, 3);
|
INSERT INTO t4 VALUES (2, 3);
|
||||||
--let $d2_end= `SELECT extract_gtid("2", @@GLOBAL.gtid_pos)`
|
--let $d2_end= `SELECT extract_gtid("2", @@GLOBAL.gtid_binlog_pos)`
|
||||||
|
|
||||||
SET gtid_domain_id= 3;
|
SET gtid_domain_id= 3;
|
||||||
CREATE TABLE t3 (a INT PRIMARY KEY) ENGINE=InnoDB;
|
CREATE TABLE t3 (a INT PRIMARY KEY) ENGINE=InnoDB;
|
||||||
--let $d3_begin= `SELECT extract_gtid("3", @@GLOBAL.gtid_pos)`
|
--let $d3_begin= `SELECT extract_gtid("3", @@GLOBAL.gtid_binlog_pos)`
|
||||||
INSERT INTO t3 VALUES (1);
|
INSERT INTO t3 VALUES (1);
|
||||||
INSERT INTO t3 VALUES (2);
|
INSERT INTO t3 VALUES (2);
|
||||||
INSERT INTO t4 VALUES (3, 1);
|
INSERT INTO t4 VALUES (3, 1);
|
||||||
--let $d3_mid= `SELECT extract_gtid("3", @@GLOBAL.gtid_pos)`
|
--let $d3_mid= `SELECT extract_gtid("3", @@GLOBAL.gtid_binlog_pos)`
|
||||||
INSERT INTO t3 VALUES (3);
|
INSERT INTO t3 VALUES (3);
|
||||||
INSERT INTO t3 VALUES (4);
|
INSERT INTO t3 VALUES (4);
|
||||||
INSERT INTO t4 VALUES (3, 3);
|
INSERT INTO t4 VALUES (3, 3);
|
||||||
--let $d3_end= `SELECT extract_gtid("3", @@GLOBAL.gtid_pos)`
|
--let $d3_end= `SELECT extract_gtid("3", @@GLOBAL.gtid_binlog_pos)`
|
||||||
|
|
||||||
|
|
||||||
# Slave server_2 (that will be promoted to master) is in the middle
|
# Slave server_2 (that will be promoted to master) is in the middle
|
||||||
@ -135,7 +135,7 @@ SELECT * FROM t4 ORDER BY a,b;
|
|||||||
--echo *** Now replicate all extra changes from 3,4,5 to 2, in preparation for making 2 the new master. ***
|
--echo *** Now replicate all extra changes from 3,4,5 to 2, in preparation for making 2 the new master. ***
|
||||||
|
|
||||||
--connection server_3
|
--connection server_3
|
||||||
--let $server3_pos= `SELECT @@GLOBAL.gtid_pos`
|
--let $server3_pos= `SELECT @@GLOBAL.gtid_slave_pos`
|
||||||
--connection server_2
|
--connection server_2
|
||||||
--replace_result $SERVER_MYPORT_3 SERVER_MYPORT_3
|
--replace_result $SERVER_MYPORT_3 SERVER_MYPORT_3
|
||||||
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $SERVER_MYPORT_3;
|
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $SERVER_MYPORT_3;
|
||||||
@ -147,7 +147,7 @@ SELECT * FROM t3 ORDER BY a;
|
|||||||
SELECT * FROM t4 ORDER BY a,b;
|
SELECT * FROM t4 ORDER BY a,b;
|
||||||
|
|
||||||
--connection server_4
|
--connection server_4
|
||||||
--let $server4_pos= `SELECT @@GLOBAL.gtid_pos`
|
--let $server4_pos= `SELECT @@GLOBAL.gtid_slave_pos`
|
||||||
--connection server_2
|
--connection server_2
|
||||||
--replace_result $SERVER_MYPORT_4 SERVER_MYPORT_4
|
--replace_result $SERVER_MYPORT_4 SERVER_MYPORT_4
|
||||||
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $SERVER_MYPORT_4;
|
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $SERVER_MYPORT_4;
|
||||||
@ -159,7 +159,7 @@ SELECT * FROM t3 ORDER BY a;
|
|||||||
SELECT * FROM t4 ORDER BY a,b;
|
SELECT * FROM t4 ORDER BY a,b;
|
||||||
|
|
||||||
--connection server_5
|
--connection server_5
|
||||||
--let $server5_pos= `SELECT @@GLOBAL.gtid_pos`
|
--let $server5_pos= `SELECT @@GLOBAL.gtid_slave_pos`
|
||||||
--connection server_2
|
--connection server_2
|
||||||
--replace_result $SERVER_MYPORT_5 SERVER_MYPORT_5
|
--replace_result $SERVER_MYPORT_5 SERVER_MYPORT_5
|
||||||
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $SERVER_MYPORT_5;
|
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $SERVER_MYPORT_5;
|
||||||
@ -222,7 +222,7 @@ SELECT * FROM t4 ORDER BY a,b;
|
|||||||
--connection server_1
|
--connection server_1
|
||||||
--replace_result $SERVER_MYPORT_2 SERVER_MYPORT_2
|
--replace_result $SERVER_MYPORT_2 SERVER_MYPORT_2
|
||||||
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $SERVER_MYPORT_2,
|
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $SERVER_MYPORT_2,
|
||||||
master_user = "root", master_use_gtid = 1;
|
master_user = "root", master_use_gtid = current_pos;
|
||||||
--source include/start_slave.inc
|
--source include/start_slave.inc
|
||||||
--sync_with_master
|
--sync_with_master
|
||||||
SELECT * FROM t1 ORDER BY a;
|
SELECT * FROM t1 ORDER BY a;
|
||||||
|
@ -24,7 +24,7 @@ reset slave all;
|
|||||||
connection server_1;
|
connection server_1;
|
||||||
--replace_result $SERVER_MYPORT_2 SERVER_MYPORT_2
|
--replace_result $SERVER_MYPORT_2 SERVER_MYPORT_2
|
||||||
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $SERVER_MYPORT_2,
|
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $SERVER_MYPORT_2,
|
||||||
master_user='root', MASTER_USE_GTID=1;
|
master_user='root', MASTER_USE_GTID=CURRENT_POS;
|
||||||
source include/start_slave.inc;
|
source include/start_slave.inc;
|
||||||
source include/wait_for_slave_to_start.inc;
|
source include/wait_for_slave_to_start.inc;
|
||||||
|
|
||||||
@ -38,7 +38,7 @@ save_master_pos;
|
|||||||
connection server_3;
|
connection server_3;
|
||||||
--replace_result $SERVER_MYPORT_2 SERVER_MYPORT_2
|
--replace_result $SERVER_MYPORT_2 SERVER_MYPORT_2
|
||||||
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $SERVER_MYPORT_2,
|
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $SERVER_MYPORT_2,
|
||||||
MASTER_USE_GTID=1;
|
MASTER_USE_GTID=CURRENT_POS;
|
||||||
source include/start_slave.inc;
|
source include/start_slave.inc;
|
||||||
sync_with_master;
|
sync_with_master;
|
||||||
|
|
||||||
@ -56,14 +56,14 @@ reset slave all;
|
|||||||
connection server_2;
|
connection server_2;
|
||||||
--replace_result $SERVER_MYPORT_1 SERVER_MYPORT_1
|
--replace_result $SERVER_MYPORT_1 SERVER_MYPORT_1
|
||||||
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $SERVER_MYPORT_1,
|
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $SERVER_MYPORT_1,
|
||||||
master_user = 'root', MASTER_USE_GTID=1;
|
master_user = 'root', MASTER_USE_GTID=CURRENT_POS;
|
||||||
source include/start_slave.inc;
|
source include/start_slave.inc;
|
||||||
|
|
||||||
connection server_3;
|
connection server_3;
|
||||||
source include/stop_slave.inc;
|
source include/stop_slave.inc;
|
||||||
--replace_result $SERVER_MYPORT_1 SERVER_MYPORT_1
|
--replace_result $SERVER_MYPORT_1 SERVER_MYPORT_1
|
||||||
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $SERVER_MYPORT_1,
|
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $SERVER_MYPORT_1,
|
||||||
MASTER_USE_GTID=1;
|
MASTER_USE_GTID=CURRENT_POS;
|
||||||
source include/start_slave.inc;
|
source include/start_slave.inc;
|
||||||
|
|
||||||
connection server_1;
|
connection server_1;
|
||||||
|
11
mysql-test/suite/rpl/t/rpl_gtid_mdev4474.cnf
Normal file
11
mysql-test/suite/rpl/t/rpl_gtid_mdev4474.cnf
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
!include suite/rpl/rpl_1slave_base.cnf
|
||||||
|
!include include/default_client.cnf
|
||||||
|
|
||||||
|
|
||||||
|
[mysqld.1]
|
||||||
|
log-slave-updates
|
||||||
|
loose-innodb
|
||||||
|
|
||||||
|
[mysqld.2]
|
||||||
|
log-slave-updates
|
||||||
|
loose-innodb
|
76
mysql-test/suite/rpl/t/rpl_gtid_mdev4474.test
Normal file
76
mysql-test/suite/rpl/t/rpl_gtid_mdev4474.test
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
--source include/have_innodb.inc
|
||||||
|
--source include/have_binlog_format_mixed_or_statement.inc
|
||||||
|
--let $rpl_topology=1->2->1
|
||||||
|
--source include/rpl_init.inc
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # For now we'll only have 1->2 running
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Server 1
|
||||||
|
--echo # Stop replication 2->1
|
||||||
|
--connection server_1
|
||||||
|
--source include/stop_slave.inc
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Server 2
|
||||||
|
--echo # Use GTID for replication 1->2
|
||||||
|
--connection server_2
|
||||||
|
--source include/stop_slave.inc
|
||||||
|
change master to master_use_gtid=slave_pos;
|
||||||
|
--source include/start_slave.inc
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Create some 0-1-* and 0-2-* events in binlog of server 2
|
||||||
|
|
||||||
|
--enable_connect_log
|
||||||
|
|
||||||
|
--connection server_1
|
||||||
|
create table t1 (i int) engine=InnoDB;
|
||||||
|
insert into t1 values (1);
|
||||||
|
--save_master_pos
|
||||||
|
|
||||||
|
--connection server_2
|
||||||
|
--sync_with_master
|
||||||
|
create table t2 (i int) engine=InnoDB;
|
||||||
|
--save_master_pos
|
||||||
|
|
||||||
|
--connection server_1
|
||||||
|
insert into t1 values (2);
|
||||||
|
--save_master_pos
|
||||||
|
|
||||||
|
--connection server_2
|
||||||
|
--sync_with_master
|
||||||
|
insert into t2 values (1);
|
||||||
|
--save_master_pos
|
||||||
|
|
||||||
|
--disable_connect_log
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # All events are present in the binlog of server 2
|
||||||
|
|
||||||
|
--source include/show_binlog_events.inc
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Server 1
|
||||||
|
--echo # Start replication 2->1 using GTID,
|
||||||
|
|
||||||
|
--connection server_1
|
||||||
|
change master to master_use_gtid=slave_pos;
|
||||||
|
--source include/start_slave.inc
|
||||||
|
--sync_with_master
|
||||||
|
|
||||||
|
select * from t1 order by i;
|
||||||
|
select * from t2 order by i;
|
||||||
|
|
||||||
|
--connection server_2
|
||||||
|
select * from t1 order by i;
|
||||||
|
select * from t2 order by i;
|
||||||
|
|
||||||
|
--connection server_1
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
|
--connection server_2
|
||||||
|
drop table t2;
|
||||||
|
|
||||||
|
--source include/rpl_end.inc
|
@ -26,7 +26,7 @@ INSERT INTO t1 VALUES (4, 2);
|
|||||||
--connection server_1
|
--connection server_1
|
||||||
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
--replace_result $SLAVE_MYPORT SLAVE_PORT
|
||||||
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $SLAVE_MYPORT,
|
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $SLAVE_MYPORT,
|
||||||
master_user = 'root', master_use_gtid = 1;
|
master_user = 'root', master_use_gtid = current_pos;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
--let $wait_condition= SELECT COUNT(*) = 4 FROM t1
|
--let $wait_condition= SELECT COUNT(*) = 4 FROM t1
|
||||||
--source include/wait_condition.inc
|
--source include/wait_condition.inc
|
||||||
@ -41,7 +41,7 @@ INSERT INTO t1 VALUES (6, 1);
|
|||||||
--connection server_2
|
--connection server_2
|
||||||
--replace_result $MASTER_MYPORT MASTER_PORT
|
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||||
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $MASTER_MYPORT,
|
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $MASTER_MYPORT,
|
||||||
master_use_gtid = 1;
|
master_use_gtid = current_pos;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
--let $wait_condition= SELECT COUNT(*) = 6 FROM t1
|
--let $wait_condition= SELECT COUNT(*) = 6 FROM t1
|
||||||
--source include/wait_condition.inc
|
--source include/wait_condition.inc
|
||||||
|
@ -16,10 +16,10 @@ CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
|
|||||||
--save_master_pos
|
--save_master_pos
|
||||||
|
|
||||||
--connection server_2
|
--connection server_2
|
||||||
SET GLOBAL gtid_pos="";
|
SET GLOBAL gtid_slave_pos="";
|
||||||
--replace_result $MASTER_MYPORT MASTER_PORT
|
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||||
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $MASTER_MYPORT,
|
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $MASTER_MYPORT,
|
||||||
MASTER_USE_GTID=1;
|
MASTER_USE_GTID=CURRENT_POS;
|
||||||
--source include/start_slave.inc
|
--source include/start_slave.inc
|
||||||
--sync_with_master
|
--sync_with_master
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
@ -43,10 +43,10 @@ INSERT INTO t1 VALUES (2);
|
|||||||
--source include/show_binary_logs.inc
|
--source include/show_binary_logs.inc
|
||||||
|
|
||||||
--connection server_2
|
--connection server_2
|
||||||
SET GLOBAL gtid_pos="";
|
SET GLOBAL gtid_slave_pos="";
|
||||||
--replace_result $MASTER_MYPORT MASTER_PORT
|
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||||
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $MASTER_MYPORT,
|
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $MASTER_MYPORT,
|
||||||
MASTER_USE_GTID=1;
|
MASTER_USE_GTID=CURRENT_POS;
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
--let $slave_io_errno= 1236
|
--let $slave_io_errno= 1236
|
||||||
--source include/wait_for_slave_io_error.inc
|
--source include/wait_for_slave_io_error.inc
|
||||||
@ -62,17 +62,17 @@ SET sql_log_bin=0;
|
|||||||
call mtr.add_suppression('Could not find GTID state requested by slave in any binlog files');
|
call mtr.add_suppression('Could not find GTID state requested by slave in any binlog files');
|
||||||
SET sql_log_bin=1;
|
SET sql_log_bin=1;
|
||||||
|
|
||||||
--echo *** Test that we give error when explict @@gtid_pos=xxx that conflicts with what is in our binary log ***
|
--echo *** Test that we give warning when explict @@gtid_slave_pos=xxx that conflicts with what is in our binary log ***
|
||||||
--source include/stop_slave.inc
|
--source include/stop_slave.inc
|
||||||
|
|
||||||
--connection server_1
|
--connection server_1
|
||||||
INSERT INTO t1 VALUES(3);
|
INSERT INTO t1 VALUES(3);
|
||||||
|
|
||||||
--connection server_2
|
--connection server_2
|
||||||
SET GLOBAL gtid_pos='0-1-3';
|
SET GLOBAL gtid_slave_pos='0-1-3';
|
||||||
--replace_result $MASTER_MYPORT MASTER_PORT
|
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||||
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $MASTER_MYPORT,
|
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $MASTER_MYPORT,
|
||||||
MASTER_USE_GTID=1;
|
MASTER_USE_GTID=CURRENT_POS;
|
||||||
--source include/start_slave.inc
|
--source include/start_slave.inc
|
||||||
--let $wait_condition= SELECT COUNT(*) = 3 FROM t1
|
--let $wait_condition= SELECT COUNT(*) = 3 FROM t1
|
||||||
--source include/wait_condition.inc
|
--source include/wait_condition.inc
|
||||||
@ -84,15 +84,14 @@ INSERT INTO t1 VALUES (4);
|
|||||||
|
|
||||||
--connection server_2
|
--connection server_2
|
||||||
# Now add some local transactions that conflict with the GTID position
|
# Now add some local transactions that conflict with the GTID position
|
||||||
# being set for GTID_POS.
|
# being set for @@gtid_slave_pos.
|
||||||
INSERT INTO t1 VALUES (10);
|
INSERT INTO t1 VALUES (10);
|
||||||
DELETE FROM t1 WHERE a=10;
|
DELETE FROM t1 WHERE a=10;
|
||||||
--error ER_MASTER_GTID_POS_CONFLICTS_WITH_BINLOG
|
SET GLOBAL gtid_slave_pos='0-1-4';
|
||||||
SET GLOBAL gtid_pos='0-1-4';
|
|
||||||
|
|
||||||
# Try again after RESET MASTER to remove the conflicting binlog.
|
# Try again after RESET MASTER to remove the conflicting binlog.
|
||||||
RESET MASTER;
|
RESET MASTER;
|
||||||
SET GLOBAL gtid_pos='0-1-4';
|
SET GLOBAL gtid_slave_pos='0-1-4';
|
||||||
START SLAVE;
|
START SLAVE;
|
||||||
--let $wait_condition= SELECT COUNT(*) = 4 FROM t1
|
--let $wait_condition= SELECT COUNT(*) = 4 FROM t1
|
||||||
--source include/wait_condition.inc
|
--source include/wait_condition.inc
|
||||||
@ -117,9 +116,9 @@ RESET MASTER;
|
|||||||
RESET MASTER;
|
RESET MASTER;
|
||||||
|
|
||||||
--connection server_2
|
--connection server_2
|
||||||
SET GLOBAL gtid_pos='';
|
SET GLOBAL gtid_slave_pos='';
|
||||||
--replace_result $MASTER_MYPORT MASTER_PORT
|
--replace_result $MASTER_MYPORT MASTER_PORT
|
||||||
eval CHANGE MASTER TO master_host='127.0.0.1', master_port=$MASTER_MYPORT, master_user='root', master_use_gtid=1;
|
eval CHANGE MASTER TO master_host='127.0.0.1', master_port=$MASTER_MYPORT, master_user='root', master_use_gtid=current_pos;
|
||||||
--source include/start_slave.inc
|
--source include/start_slave.inc
|
||||||
|
|
||||||
--connection server_1
|
--connection server_1
|
||||||
@ -145,22 +144,21 @@ INSERT INTO t1 VALUES (2);
|
|||||||
SELECT * FROM t1 ORDER BY a;
|
SELECT * FROM t1 ORDER BY a;
|
||||||
|
|
||||||
|
|
||||||
--echo *** MDEV-4329: GTID_POS='' is not checked for conflicts with binlog ***
|
--echo *** MDEV-4329: GTID_SLAVE_POS='' is not checked for conflicts with binlog ***
|
||||||
|
|
||||||
# Test starting the slave completely from scratch, deleting all tables and
|
# Test starting the slave completely from scratch, deleting all tables and
|
||||||
# replicating from the start of the master's binlog. This requires RESET
|
# replicating from the start of the master's binlog. This requires RESET
|
||||||
# MASTER is run on the slave to avoid old junk in the binlog. The bug was
|
# MASTER is run on the slave to avoid old junk in the binlog. The bug was
|
||||||
# that the code did not catch the error of missing RESET MASTER when an
|
# that the code did not catch the error of missing RESET MASTER when an
|
||||||
# empty GTID_POS='' was specified.
|
# empty GTID_SLAVE_POS='' was specified.
|
||||||
|
|
||||||
--connection server_2
|
--connection server_2
|
||||||
--source include/stop_slave.inc
|
--source include/stop_slave.inc
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
RESET SLAVE;
|
RESET SLAVE;
|
||||||
--error ER_MASTER_GTID_POS_MISSING_DOMAIN
|
SET GLOBAL gtid_slave_pos="";
|
||||||
SET GLOBAL gtid_pos="";
|
|
||||||
RESET MASTER;
|
RESET MASTER;
|
||||||
SET GLOBAL gtid_pos="";
|
SET GLOBAL gtid_slave_pos="";
|
||||||
|
|
||||||
--source include/start_slave.inc
|
--source include/start_slave.inc
|
||||||
--sync_with_master
|
--sync_with_master
|
||||||
@ -176,7 +174,7 @@ SET SQL_LOG_BIN=0;
|
|||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
SET SQL_LOG_BIN=1;
|
SET SQL_LOG_BIN=1;
|
||||||
RESET SLAVE;
|
RESET SLAVE;
|
||||||
SET GLOBAL gtid_pos="";
|
SET GLOBAL gtid_slave_pos="";
|
||||||
|
|
||||||
--source include/start_slave.inc
|
--source include/start_slave.inc
|
||||||
--sync_with_master
|
--sync_with_master
|
||||||
@ -197,7 +195,7 @@ START SLAVE;
|
|||||||
|
|
||||||
# Going back to using GTID should fix things.
|
# Going back to using GTID should fix things.
|
||||||
STOP SLAVE IO_THREAD;
|
STOP SLAVE IO_THREAD;
|
||||||
CHANGE MASTER TO MASTER_USE_GTID=1;
|
CHANGE MASTER TO MASTER_USE_GTID=CURRENT_POS;
|
||||||
--source include/start_slave.inc
|
--source include/start_slave.inc
|
||||||
|
|
||||||
--connection server_1
|
--connection server_1
|
||||||
@ -245,7 +243,7 @@ SELECT * FROM t1 ORDER BY a;
|
|||||||
--connection server_2
|
--connection server_2
|
||||||
--source include/stop_slave.inc
|
--source include/stop_slave.inc
|
||||||
RESET MASTER;
|
RESET MASTER;
|
||||||
SET GLOBAL gtid_pos="";
|
SET GLOBAL gtid_slave_pos="";
|
||||||
|
|
||||||
--connection server_1
|
--connection server_1
|
||||||
RESET MASTER;
|
RESET MASTER;
|
||||||
@ -260,25 +258,24 @@ INSERT INTO t1 VALUES (10); # Will be GTID 0-1-2
|
|||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
--let $value= query_get_value(SHOW SLAVE STATUS, "Using_Gtid", 1)
|
--let $value= query_get_value(SHOW SLAVE STATUS, "Using_Gtid", 1)
|
||||||
eval SELECT '$value' AS Using_Gtid;
|
eval SELECT '$value' AS Using_Gtid;
|
||||||
--let $value= query_get_value(SHOW ALL SLAVES STATUS, "Gtid_Pos", 1)
|
--let $value= query_get_value(SHOW ALL SLAVES STATUS, "Gtid_Slave_Pos", 1)
|
||||||
eval SELECT '$value' AS Gtid_Pos;
|
eval SELECT '$value' AS Gtid_Slave_Pos;
|
||||||
|
|
||||||
UPDATE t1 SET a=9 WHERE a=10;
|
UPDATE t1 SET a=9 WHERE a=10;
|
||||||
UPDATE t1 SET a=10 WHERE a=9;
|
UPDATE t1 SET a=10 WHERE a=9;
|
||||||
|
|
||||||
--let $value= query_get_value(SHOW ALL SLAVES STATUS, "Gtid_Pos", 1)
|
--let $value= query_get_value(SHOW ALL SLAVES STATUS, "Gtid_Slave_Pos", 1)
|
||||||
eval SELECT '$value' AS Gtid_Pos;
|
eval SELECT '$value' AS Gtid_Slave_Pos;
|
||||||
|
|
||||||
--source include/stop_slave.inc
|
--source include/stop_slave.inc
|
||||||
--error ER_MASTER_GTID_POS_CONFLICTS_WITH_BINLOG
|
SET GLOBAL gtid_slave_pos='0-1-2';
|
||||||
SET GLOBAL gtid_pos='0-1-2';
|
|
||||||
RESET MASTER;
|
RESET MASTER;
|
||||||
--let $value= query_get_value(SHOW ALL SLAVES STATUS, "Gtid_Pos", 1)
|
--let $value= query_get_value(SHOW ALL SLAVES STATUS, "Gtid_Slave_Pos", 1)
|
||||||
eval SELECT '$value' AS Gtid_Pos;
|
eval SELECT '$value' AS Gtid_Slave_Pos;
|
||||||
SET GLOBAL gtid_pos='0-1-2';
|
SET GLOBAL gtid_slave_pos='0-1-2';
|
||||||
--source include/start_slave.inc
|
--source include/start_slave.inc
|
||||||
--let $value= query_get_value(SHOW ALL SLAVES STATUS, "Gtid_Pos", 1)
|
--let $value= query_get_value(SHOW ALL SLAVES STATUS, "Gtid_Slave_Pos", 1)
|
||||||
eval SELECT '$value' AS Gtid_Pos;
|
eval SELECT '$value' AS Gtid_Slave_Pos;
|
||||||
|
|
||||||
# Clean up.
|
# Clean up.
|
||||||
--connection server_1
|
--connection server_1
|
||||||
|
@ -15,7 +15,7 @@ INSERT INTO t1 VALUES (1);
|
|||||||
--let $status_items= Master_Log_File,Using_Gtid
|
--let $status_items= Master_Log_File,Using_Gtid
|
||||||
--source include/show_slave_status.inc
|
--source include/show_slave_status.inc
|
||||||
|
|
||||||
CHANGE MASTER TO master_use_gtid=1;
|
CHANGE MASTER TO master_use_gtid=current_pos;
|
||||||
|
|
||||||
# Now try to restart the slave mysqld server without starting the slave first
|
# Now try to restart the slave mysqld server without starting the slave first
|
||||||
# threads after the CHANGE MASTER.
|
# threads after the CHANGE MASTER.
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
--source include/rpl_init.inc
|
--source include/rpl_init.inc
|
||||||
|
|
||||||
--connection server_1
|
--connection server_1
|
||||||
ALTER TABLE mysql.rpl_slave_state ENGINE=InnoDB;
|
ALTER TABLE mysql.gtid_slave_pos ENGINE=InnoDB;
|
||||||
# Function to extract one GTID from a list.
|
# Function to extract one GTID from a list.
|
||||||
delimiter |;
|
delimiter |;
|
||||||
CREATE FUNCTION extract_gtid(d VARCHAR(100), s VARCHAR(100))
|
CREATE FUNCTION extract_gtid(d VARCHAR(100), s VARCHAR(100))
|
||||||
@ -37,12 +37,12 @@ START SLAVE UNTIL master_gtid_pos = "";
|
|||||||
--error ER_UNTIL_REQUIRES_USING_GTID
|
--error ER_UNTIL_REQUIRES_USING_GTID
|
||||||
START SLAVE UNTIL master_gtid_pos = "";
|
START SLAVE UNTIL master_gtid_pos = "";
|
||||||
|
|
||||||
CHANGE MASTER TO master_use_gtid=1;
|
CHANGE MASTER TO master_use_gtid=current_pos;
|
||||||
|
|
||||||
--connection server_1
|
--connection server_1
|
||||||
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
|
CREATE TABLE t1 (a INT PRIMARY KEY) ENGINE=InnoDB;
|
||||||
INSERT INTO t1 VALUES(1);
|
INSERT INTO t1 VALUES(1);
|
||||||
--let $gtid_pos=`SELECT @@GLOBAL.gtid_pos`
|
--let $gtid_pos=`SELECT @@GLOBAL.gtid_binlog_pos`
|
||||||
INSERT INTO t1 VALUES(2);
|
INSERT INTO t1 VALUES(2);
|
||||||
|
|
||||||
--connection server_2
|
--connection server_2
|
||||||
@ -93,8 +93,8 @@ INSERT INTO t1 VALUES (3);
|
|||||||
SET gtid_domain_id = 2;
|
SET gtid_domain_id = 2;
|
||||||
CREATE TABLE t2 (a INT);
|
CREATE TABLE t2 (a INT);
|
||||||
INSERT INTO t2 VALUES (3);
|
INSERT INTO t2 VALUES (3);
|
||||||
--let $d1_point1= `SELECT extract_gtid("1", @@GLOBAL.gtid_pos)`
|
--let $d1_point1= `SELECT extract_gtid("1", @@GLOBAL.gtid_binlog_pos)`
|
||||||
--let $d2_point1= `SELECT extract_gtid("2", @@GLOBAL.gtid_pos)`
|
--let $d2_point1= `SELECT extract_gtid("2", @@GLOBAL.gtid_binlog_pos)`
|
||||||
FLUSH LOGS;
|
FLUSH LOGS;
|
||||||
SET gtid_domain_id = 1;
|
SET gtid_domain_id = 1;
|
||||||
INSERT INTO t1 VALUES (4);
|
INSERT INTO t1 VALUES (4);
|
||||||
@ -103,15 +103,15 @@ INSERT INTO t2 VALUES (4);
|
|||||||
FLUSH LOGS;
|
FLUSH LOGS;
|
||||||
SET gtid_domain_id = 1;
|
SET gtid_domain_id = 1;
|
||||||
INSERT INTO t1 VALUES (5);
|
INSERT INTO t1 VALUES (5);
|
||||||
--let $d1_point2= `SELECT extract_gtid("1", @@GLOBAL.gtid_pos)`
|
--let $d1_point2= `SELECT extract_gtid("1", @@GLOBAL.gtid_binlog_pos)`
|
||||||
--let $d2_point2= `SELECT extract_gtid("2", @@GLOBAL.gtid_pos)`
|
--let $d2_point2= `SELECT extract_gtid("2", @@GLOBAL.gtid_binlog_pos)`
|
||||||
SET gtid_domain_id = 2;
|
SET gtid_domain_id = 2;
|
||||||
INSERT INTO t2 VALUES (5);
|
INSERT INTO t2 VALUES (5);
|
||||||
FLUSH LOGS;
|
FLUSH LOGS;
|
||||||
SET gtid_domain_id = 1;
|
SET gtid_domain_id = 1;
|
||||||
INSERT INTO t1 VALUES (6);
|
INSERT INTO t1 VALUES (6);
|
||||||
--let $d1_point3= `SELECT extract_gtid("1", @@GLOBAL.gtid_pos)`
|
--let $d1_point3= `SELECT extract_gtid("1", @@GLOBAL.gtid_binlog_pos)`
|
||||||
--let $d2_point3= `SELECT extract_gtid("2", @@GLOBAL.gtid_pos)`
|
--let $d2_point3= `SELECT extract_gtid("2", @@GLOBAL.gtid_binlog_pos)`
|
||||||
SET gtid_domain_id = 2;
|
SET gtid_domain_id = 2;
|
||||||
INSERT INTO t2 VALUES (6);
|
INSERT INTO t2 VALUES (6);
|
||||||
SET gtid_domain_id = 0;
|
SET gtid_domain_id = 0;
|
||||||
@ -170,7 +170,7 @@ SELECT * FROM t1 ORDER BY a;
|
|||||||
|
|
||||||
--connection server_1
|
--connection server_1
|
||||||
CREATE TABLE t3 (a INT);
|
CREATE TABLE t3 (a INT);
|
||||||
--let $until_condition=`SELECT @@GLOBAL.gtid_pos`
|
--let $until_condition=`SELECT @@GLOBAL.gtid_binlog_pos`
|
||||||
DROP TABLE t3;
|
DROP TABLE t3;
|
||||||
--save_master_pos
|
--save_master_pos
|
||||||
|
|
||||||
@ -187,7 +187,7 @@ SHOW CREATE TABLE t3;
|
|||||||
--source include/stop_slave.inc
|
--source include/stop_slave.inc
|
||||||
RESET SLAVE ALL;
|
RESET SLAVE ALL;
|
||||||
RESET MASTER;
|
RESET MASTER;
|
||||||
SET GLOBAL gtid_pos='';
|
SET GLOBAL gtid_slave_pos='';
|
||||||
|
|
||||||
--connection server_1
|
--connection server_1
|
||||||
# Do it once to compute the right GTID, then throw it away and do it again
|
# Do it once to compute the right GTID, then throw it away and do it again
|
||||||
@ -195,7 +195,7 @@ SET GLOBAL gtid_pos='';
|
|||||||
RESET MASTER;
|
RESET MASTER;
|
||||||
INSERT INTO t1 VALUES (10);
|
INSERT INTO t1 VALUES (10);
|
||||||
INSERT INTO t1 VALUES (11);
|
INSERT INTO t1 VALUES (11);
|
||||||
--let $until_condition=`SELECT @@GLOBAL.gtid_pos`
|
--let $until_condition=`SELECT @@GLOBAL.gtid_binlog_pos`
|
||||||
INSERT INTO t1 VALUES (12);
|
INSERT INTO t1 VALUES (12);
|
||||||
DELETE FROM t1 WHERE a >= 10;
|
DELETE FROM t1 WHERE a >= 10;
|
||||||
|
|
||||||
@ -205,7 +205,7 @@ INSERT INTO t1 VALUES (10);
|
|||||||
--connection server_2
|
--connection server_2
|
||||||
--replace_result $SERVER_MYPORT_1 SERVER_MYPORT_1
|
--replace_result $SERVER_MYPORT_1 SERVER_MYPORT_1
|
||||||
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $SERVER_MYPORT_1,
|
eval CHANGE MASTER TO master_host = '127.0.0.1', master_port = $SERVER_MYPORT_1,
|
||||||
master_user = "root", master_use_gtid = 1;
|
master_user = "root", master_use_gtid = current_pos;
|
||||||
eval START SLAVE UNTIL master_gtid_pos = '$until_condition';
|
eval START SLAVE UNTIL master_gtid_pos = '$until_condition';
|
||||||
--source include/wait_for_slave_to_start.inc
|
--source include/wait_for_slave_to_start.inc
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@
|
|||||||
call mtr.add_suppression('Attempting backtrace');
|
call mtr.add_suppression('Attempting backtrace');
|
||||||
call mtr.add_suppression("Recovery from master pos .* and file master-bin.000001");
|
call mtr.add_suppression("Recovery from master pos .* and file master-bin.000001");
|
||||||
# Use innodb so we do not get "table should be repaired" issues.
|
# Use innodb so we do not get "table should be repaired" issues.
|
||||||
ALTER TABLE mysql.rpl_slave_state ENGINE=InnoDB;
|
ALTER TABLE mysql.gtid_slave_pos ENGINE=InnoDB;
|
||||||
flush tables;
|
flush tables;
|
||||||
CREATE TABLE t1(a INT, PRIMARY KEY(a)) engine=innodb;
|
CREATE TABLE t1(a INT, PRIMARY KEY(a)) engine=innodb;
|
||||||
|
|
||||||
|
9
mysql-test/suite/sys_vars/r/gtid_binlog_pos_basic.result
Normal file
9
mysql-test/suite/sys_vars/r/gtid_binlog_pos_basic.result
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
SET GLOBAL gtid_binlog_pos= '';
|
||||||
|
ERROR HY000: Variable 'gtid_binlog_pos' is a read only variable
|
||||||
|
SELECT variable_name FROM information_schema.global_variables
|
||||||
|
WHERE variable_name='gtid_binlog_pos';
|
||||||
|
variable_name
|
||||||
|
GTID_BINLOG_POS
|
||||||
|
SELECT @@gtid_binlog_pos;
|
||||||
|
SELECT @@session.gtid_binlog_pos;
|
||||||
|
ERROR HY000: Variable 'gtid_binlog_pos' is a GLOBAL variable
|
@ -0,0 +1,9 @@
|
|||||||
|
SET GLOBAL gtid_current_pos= '';
|
||||||
|
ERROR HY000: Variable 'gtid_current_pos' is a read only variable
|
||||||
|
SELECT variable_name FROM information_schema.global_variables
|
||||||
|
WHERE variable_name='gtid_current_pos';
|
||||||
|
variable_name
|
||||||
|
GTID_CURRENT_POS
|
||||||
|
SELECT @@gtid_current_pos;
|
||||||
|
SELECT @@session.gtid_current_pos;
|
||||||
|
ERROR HY000: Variable 'gtid_current_pos' is a GLOBAL variable
|
@ -1,47 +0,0 @@
|
|||||||
SET @old_gtid_pos= @@gtid_pos;
|
|
||||||
SET GLOBAL gtid_pos= '';
|
|
||||||
SELECT @@gtid_pos;
|
|
||||||
@@gtid_pos
|
|
||||||
|
|
||||||
SET GLOBAL gtid_pos= '1-2-3';
|
|
||||||
SELECT variable_value FROM information_schema.global_variables
|
|
||||||
WHERE variable_name='gtid_pos';
|
|
||||||
variable_value
|
|
||||||
1-2-3
|
|
||||||
SET @@global.gtid_pos= '1-2-4';
|
|
||||||
SELECT @@gtid_pos;
|
|
||||||
@@gtid_pos
|
|
||||||
1-2-4
|
|
||||||
SET GLOBAL gtid_pos= ' 1-2-3';
|
|
||||||
SELECT @@gtid_pos;
|
|
||||||
@@gtid_pos
|
|
||||||
1-2-3
|
|
||||||
SET GLOBAL gtid_pos= '1-2-3, 2-4-6';
|
|
||||||
SELECT @@gtid_pos;
|
|
||||||
@@gtid_pos
|
|
||||||
1-2-3,2-4-6
|
|
||||||
SET GLOBAL gtid_pos= '-1-2-3';
|
|
||||||
ERROR HY000: Could not parse GTID list for GTID_POS
|
|
||||||
SET GLOBAL gtid_pos= '1-2 -3';
|
|
||||||
ERROR HY000: Could not parse GTID list for GTID_POS
|
|
||||||
SET GLOBAL gtid_pos= '1-2-3 ';
|
|
||||||
ERROR HY000: Could not parse GTID list for GTID_POS
|
|
||||||
SET GLOBAL gtid_pos= '1-2-3,2-4';
|
|
||||||
ERROR HY000: Could not parse GTID list for GTID_POS
|
|
||||||
SET GLOBAL gtid_pos= '0-1-10,0-2-20';
|
|
||||||
ERROR HY000: GTID 0-2-20 and 0-1-10 conflict (duplicate domain id 0)
|
|
||||||
SET GLOBAL gtid_pos= '0-1-10,1-2-20,2-3-30,1-20-200,3-4-1';
|
|
||||||
ERROR HY000: GTID 1-20-200 and 1-2-20 conflict (duplicate domain id 1)
|
|
||||||
SET gtid_pos= '';
|
|
||||||
ERROR HY000: Variable 'gtid_pos' is a GLOBAL variable and should be set with SET GLOBAL
|
|
||||||
SET SESSION gtid_pos= '';
|
|
||||||
ERROR HY000: Variable 'gtid_pos' is a GLOBAL variable and should be set with SET GLOBAL
|
|
||||||
SET GLOBAL gtid_pos= '1-2-3,2-4-6';
|
|
||||||
SELECT @@gtid_pos;
|
|
||||||
@@gtid_pos
|
|
||||||
1-2-3,2-4-6
|
|
||||||
SET GLOBAL gtid_pos= DEFAULT;
|
|
||||||
ERROR 42000: Variable 'gtid_pos' doesn't have a default value
|
|
||||||
SELECT @@session.gtid_pos;
|
|
||||||
ERROR HY000: Variable 'gtid_pos' is a GLOBAL variable
|
|
||||||
SET GLOBAL gtid_pos= @old_gtid_pos;
|
|
47
mysql-test/suite/sys_vars/r/gtid_slave_pos_basic.result
Normal file
47
mysql-test/suite/sys_vars/r/gtid_slave_pos_basic.result
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
SET @old_gtid_slave_pos= @@gtid_slave_pos;
|
||||||
|
SET GLOBAL gtid_slave_pos= '';
|
||||||
|
SELECT @@gtid_slave_pos;
|
||||||
|
@@gtid_slave_pos
|
||||||
|
|
||||||
|
SET GLOBAL gtid_slave_pos= '1-2-3';
|
||||||
|
SELECT variable_value FROM information_schema.global_variables
|
||||||
|
WHERE variable_name='gtid_slave_pos';
|
||||||
|
variable_value
|
||||||
|
1-2-3
|
||||||
|
SET @@global.gtid_slave_pos= '1-2-4';
|
||||||
|
SELECT @@gtid_slave_pos;
|
||||||
|
@@gtid_slave_pos
|
||||||
|
1-2-4
|
||||||
|
SET GLOBAL gtid_slave_pos= ' 1-2-3';
|
||||||
|
SELECT @@gtid_slave_pos;
|
||||||
|
@@gtid_slave_pos
|
||||||
|
1-2-3
|
||||||
|
SET GLOBAL gtid_slave_pos= '1-2-3, 2-4-6';
|
||||||
|
SELECT @@gtid_slave_pos;
|
||||||
|
@@gtid_slave_pos
|
||||||
|
1-2-3,2-4-6
|
||||||
|
SET GLOBAL gtid_slave_pos= '-1-2-3';
|
||||||
|
ERROR HY000: Could not parse GTID list for GTID_POS
|
||||||
|
SET GLOBAL gtid_slave_pos= '1-2 -3';
|
||||||
|
ERROR HY000: Could not parse GTID list for GTID_POS
|
||||||
|
SET GLOBAL gtid_slave_pos= '1-2-3 ';
|
||||||
|
ERROR HY000: Could not parse GTID list for GTID_POS
|
||||||
|
SET GLOBAL gtid_slave_pos= '1-2-3,2-4';
|
||||||
|
ERROR HY000: Could not parse GTID list for GTID_POS
|
||||||
|
SET GLOBAL gtid_slave_pos= '0-1-10,0-2-20';
|
||||||
|
ERROR HY000: GTID 0-2-20 and 0-1-10 conflict (duplicate domain id 0)
|
||||||
|
SET GLOBAL gtid_slave_pos= '0-1-10,1-2-20,2-3-30,1-20-200,3-4-1';
|
||||||
|
ERROR HY000: GTID 1-20-200 and 1-2-20 conflict (duplicate domain id 1)
|
||||||
|
SET gtid_slave_pos= '';
|
||||||
|
ERROR HY000: Variable 'gtid_slave_pos' is a GLOBAL variable and should be set with SET GLOBAL
|
||||||
|
SET SESSION gtid_slave_pos= '';
|
||||||
|
ERROR HY000: Variable 'gtid_slave_pos' is a GLOBAL variable and should be set with SET GLOBAL
|
||||||
|
SET GLOBAL gtid_slave_pos= '1-2-3,2-4-6';
|
||||||
|
SELECT @@gtid_slave_pos;
|
||||||
|
@@gtid_slave_pos
|
||||||
|
1-2-3,2-4-6
|
||||||
|
SET GLOBAL gtid_slave_pos= DEFAULT;
|
||||||
|
ERROR 42000: Variable 'gtid_slave_pos' doesn't have a default value
|
||||||
|
SELECT @@session.gtid_slave_pos;
|
||||||
|
ERROR HY000: Variable 'gtid_slave_pos' is a GLOBAL variable
|
||||||
|
SET GLOBAL gtid_slave_pos= @old_gtid_slave_pos;
|
15
mysql-test/suite/sys_vars/t/gtid_binlog_pos_basic.test
Normal file
15
mysql-test/suite/sys_vars/t/gtid_binlog_pos_basic.test
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
--source include/not_embedded.inc
|
||||||
|
|
||||||
|
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
|
||||||
|
SET GLOBAL gtid_binlog_pos= '';
|
||||||
|
SELECT variable_name FROM information_schema.global_variables
|
||||||
|
WHERE variable_name='gtid_binlog_pos';
|
||||||
|
|
||||||
|
# The value of the variable depends on the binary log, this is tested extensively
|
||||||
|
# elsewhere in rpl.rpl_gtid*.test
|
||||||
|
--disable_result_log
|
||||||
|
SELECT @@gtid_binlog_pos;
|
||||||
|
--enable_result_log
|
||||||
|
|
||||||
|
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
|
||||||
|
SELECT @@session.gtid_binlog_pos;
|
15
mysql-test/suite/sys_vars/t/gtid_current_pos_basic.test
Normal file
15
mysql-test/suite/sys_vars/t/gtid_current_pos_basic.test
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
--source include/not_embedded.inc
|
||||||
|
|
||||||
|
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
|
||||||
|
SET GLOBAL gtid_current_pos= '';
|
||||||
|
SELECT variable_name FROM information_schema.global_variables
|
||||||
|
WHERE variable_name='gtid_current_pos';
|
||||||
|
|
||||||
|
# The value of the variable depends on the binary log, this is tested extensively
|
||||||
|
# elsewhere in rpl.rpl_gtid*.test
|
||||||
|
--disable_result_log
|
||||||
|
SELECT @@gtid_current_pos;
|
||||||
|
--enable_result_log
|
||||||
|
|
||||||
|
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
|
||||||
|
SELECT @@session.gtid_current_pos;
|
@ -1,46 +0,0 @@
|
|||||||
--source include/not_embedded.inc
|
|
||||||
|
|
||||||
SET @old_gtid_pos= @@gtid_pos;
|
|
||||||
|
|
||||||
SET GLOBAL gtid_pos= '';
|
|
||||||
SELECT @@gtid_pos;
|
|
||||||
SET GLOBAL gtid_pos= '1-2-3';
|
|
||||||
SELECT variable_value FROM information_schema.global_variables
|
|
||||||
WHERE variable_name='gtid_pos';
|
|
||||||
SET @@global.gtid_pos= '1-2-4';
|
|
||||||
SELECT @@gtid_pos;
|
|
||||||
|
|
||||||
SET GLOBAL gtid_pos= ' 1-2-3';
|
|
||||||
SELECT @@gtid_pos;
|
|
||||||
SET GLOBAL gtid_pos= '1-2-3, 2-4-6';
|
|
||||||
SELECT @@gtid_pos;
|
|
||||||
|
|
||||||
--error ER_INCORRECT_GTID_STATE
|
|
||||||
SET GLOBAL gtid_pos= '-1-2-3';
|
|
||||||
--error ER_INCORRECT_GTID_STATE
|
|
||||||
SET GLOBAL gtid_pos= '1-2 -3';
|
|
||||||
--error ER_INCORRECT_GTID_STATE
|
|
||||||
SET GLOBAL gtid_pos= '1-2-3 ';
|
|
||||||
--error ER_INCORRECT_GTID_STATE
|
|
||||||
SET GLOBAL gtid_pos= '1-2-3,2-4';
|
|
||||||
|
|
||||||
--error ER_DUPLICATE_GTID_DOMAIN
|
|
||||||
SET GLOBAL gtid_pos= '0-1-10,0-2-20';
|
|
||||||
--error ER_DUPLICATE_GTID_DOMAIN
|
|
||||||
SET GLOBAL gtid_pos= '0-1-10,1-2-20,2-3-30,1-20-200,3-4-1';
|
|
||||||
|
|
||||||
--error ER_GLOBAL_VARIABLE
|
|
||||||
SET gtid_pos= '';
|
|
||||||
--error ER_GLOBAL_VARIABLE
|
|
||||||
SET SESSION gtid_pos= '';
|
|
||||||
|
|
||||||
SET GLOBAL gtid_pos= '1-2-3,2-4-6';
|
|
||||||
SELECT @@gtid_pos;
|
|
||||||
|
|
||||||
--error ER_NO_DEFAULT
|
|
||||||
SET GLOBAL gtid_pos= DEFAULT;
|
|
||||||
|
|
||||||
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
|
|
||||||
SELECT @@session.gtid_pos;
|
|
||||||
|
|
||||||
SET GLOBAL gtid_pos= @old_gtid_pos;
|
|
46
mysql-test/suite/sys_vars/t/gtid_slave_pos_basic.test
Normal file
46
mysql-test/suite/sys_vars/t/gtid_slave_pos_basic.test
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
--source include/not_embedded.inc
|
||||||
|
|
||||||
|
SET @old_gtid_slave_pos= @@gtid_slave_pos;
|
||||||
|
|
||||||
|
SET GLOBAL gtid_slave_pos= '';
|
||||||
|
SELECT @@gtid_slave_pos;
|
||||||
|
SET GLOBAL gtid_slave_pos= '1-2-3';
|
||||||
|
SELECT variable_value FROM information_schema.global_variables
|
||||||
|
WHERE variable_name='gtid_slave_pos';
|
||||||
|
SET @@global.gtid_slave_pos= '1-2-4';
|
||||||
|
SELECT @@gtid_slave_pos;
|
||||||
|
|
||||||
|
SET GLOBAL gtid_slave_pos= ' 1-2-3';
|
||||||
|
SELECT @@gtid_slave_pos;
|
||||||
|
SET GLOBAL gtid_slave_pos= '1-2-3, 2-4-6';
|
||||||
|
SELECT @@gtid_slave_pos;
|
||||||
|
|
||||||
|
--error ER_INCORRECT_GTID_STATE
|
||||||
|
SET GLOBAL gtid_slave_pos= '-1-2-3';
|
||||||
|
--error ER_INCORRECT_GTID_STATE
|
||||||
|
SET GLOBAL gtid_slave_pos= '1-2 -3';
|
||||||
|
--error ER_INCORRECT_GTID_STATE
|
||||||
|
SET GLOBAL gtid_slave_pos= '1-2-3 ';
|
||||||
|
--error ER_INCORRECT_GTID_STATE
|
||||||
|
SET GLOBAL gtid_slave_pos= '1-2-3,2-4';
|
||||||
|
|
||||||
|
--error ER_DUPLICATE_GTID_DOMAIN
|
||||||
|
SET GLOBAL gtid_slave_pos= '0-1-10,0-2-20';
|
||||||
|
--error ER_DUPLICATE_GTID_DOMAIN
|
||||||
|
SET GLOBAL gtid_slave_pos= '0-1-10,1-2-20,2-3-30,1-20-200,3-4-1';
|
||||||
|
|
||||||
|
--error ER_GLOBAL_VARIABLE
|
||||||
|
SET gtid_slave_pos= '';
|
||||||
|
--error ER_GLOBAL_VARIABLE
|
||||||
|
SET SESSION gtid_slave_pos= '';
|
||||||
|
|
||||||
|
SET GLOBAL gtid_slave_pos= '1-2-3,2-4-6';
|
||||||
|
SELECT @@gtid_slave_pos;
|
||||||
|
|
||||||
|
--error ER_NO_DEFAULT
|
||||||
|
SET GLOBAL gtid_slave_pos= DEFAULT;
|
||||||
|
|
||||||
|
--error ER_INCORRECT_GLOBAL_LOCAL_VAR
|
||||||
|
SELECT @@session.gtid_slave_pos;
|
||||||
|
|
||||||
|
SET GLOBAL gtid_slave_pos= @old_gtid_slave_pos;
|
@ -77,7 +77,7 @@ CREATE TABLE index_stats (db_name varchar(64) NOT NULL, table_name varchar(64) N
|
|||||||
-- disable_query_log
|
-- disable_query_log
|
||||||
|
|
||||||
# Drop all tables created by this test
|
# Drop all tables created by this test
|
||||||
DROP TABLE db, host, user, func, plugin, tables_priv, columns_priv, procs_priv, rpl_slave_state, servers, help_category, help_keyword, help_relation, help_topic, proc, time_zone, time_zone_leap_second, time_zone_name, time_zone_transition, time_zone_transition_type, general_log, slow_log, event, ndb_binlog_index, proxies_priv, table_stats, column_stats, index_stats;
|
DROP TABLE db, host, user, func, plugin, tables_priv, columns_priv, procs_priv, gtid_slave_pos, servers, help_category, help_keyword, help_relation, help_topic, proc, time_zone, time_zone_leap_second, time_zone_name, time_zone_transition, time_zone_transition_type, general_log, slow_log, event, ndb_binlog_index, proxies_priv, table_stats, column_stats, index_stats;
|
||||||
|
|
||||||
-- enable_query_log
|
-- enable_query_log
|
||||||
|
|
||||||
|
@ -84,7 +84,7 @@ CREATE TABLE index_stats (db_name varchar(64) NOT NULL, table_name varchar(64) N
|
|||||||
-- disable_query_log
|
-- disable_query_log
|
||||||
|
|
||||||
# Drop all tables created by this test
|
# Drop all tables created by this test
|
||||||
DROP TABLE db, host, user, func, plugin, tables_priv, columns_priv, procs_priv, rpl_slave_state, servers, help_category, help_keyword, help_relation, help_topic, proc, time_zone, time_zone_leap_second, time_zone_name, time_zone_transition, time_zone_transition_type, general_log, slow_log, event, ndb_binlog_index, proxies_priv, table_stats, column_stats, index_stats;
|
DROP TABLE db, host, user, func, plugin, tables_priv, columns_priv, procs_priv, gtid_slave_pos, servers, help_category, help_keyword, help_relation, help_topic, proc, time_zone, time_zone_leap_second, time_zone_name, time_zone_transition, time_zone_transition_type, general_log, slow_log, event, ndb_binlog_index, proxies_priv, table_stats, column_stats, index_stats;
|
||||||
|
|
||||||
-- enable_query_log
|
-- enable_query_log
|
||||||
|
|
||||||
|
@ -103,7 +103,7 @@ CREATE TABLE index_stats (db_name varchar(64) NOT NULL, table_name varchar(64) N
|
|||||||
-- disable_query_log
|
-- disable_query_log
|
||||||
|
|
||||||
# Drop all tables created by this test
|
# Drop all tables created by this test
|
||||||
DROP TABLE db, host, user, func, plugin, tables_priv, columns_priv, procs_priv, rpl_slave_state, servers, help_category, help_keyword, help_relation, help_topic, proc, time_zone, time_zone_leap_second, time_zone_name, time_zone_transition, time_zone_transition_type, general_log, slow_log, event, ndb_binlog_index, proxies_priv, table_stats, column_stats, index_stats;
|
DROP TABLE db, host, user, func, plugin, tables_priv, columns_priv, procs_priv, gtid_slave_pos, servers, help_category, help_keyword, help_relation, help_topic, proc, time_zone, time_zone_leap_second, time_zone_name, time_zone_transition, time_zone_transition_type, general_log, slow_log, event, ndb_binlog_index, proxies_priv, table_stats, column_stats, index_stats;
|
||||||
|
|
||||||
-- enable_query_log
|
-- enable_query_log
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ set sql_mode='';
|
|||||||
-- We want this to be created with the default storage engine.
|
-- We want this to be created with the default storage engine.
|
||||||
-- This way, if InnoDB is used we get crash safety, and if MyISAM is used
|
-- This way, if InnoDB is used we get crash safety, and if MyISAM is used
|
||||||
-- we avoid mixed-engine transactions.
|
-- we avoid mixed-engine transactions.
|
||||||
CREATE TABLE IF NOT EXISTS rpl_slave_state (domain_id INT UNSIGNED NOT NULL, sub_id BIGINT UNSIGNED NOT NULL, server_id INT UNSIGNED NOT NULL, seq_no BIGINT UNSIGNED NOT NULL, PRIMARY KEY (domain_id, sub_id)) comment='Replication slave GTID state';
|
CREATE TABLE IF NOT EXISTS gtid_slave_pos (domain_id INT UNSIGNED NOT NULL, sub_id BIGINT UNSIGNED NOT NULL, server_id INT UNSIGNED NOT NULL, seq_no BIGINT UNSIGNED NOT NULL, PRIMARY KEY (domain_id, sub_id)) comment='Replication slave GTID state';
|
||||||
|
|
||||||
set storage_engine=myisam;
|
set storage_engine=myisam;
|
||||||
flush tables;
|
flush tables;
|
||||||
|
@ -152,6 +152,7 @@ static SYMBOL symbols[] = {
|
|||||||
{ "CROSS", SYM(CROSS)},
|
{ "CROSS", SYM(CROSS)},
|
||||||
{ "CUBE", SYM(CUBE_SYM)},
|
{ "CUBE", SYM(CUBE_SYM)},
|
||||||
{ "CURRENT_DATE", SYM(CURDATE)},
|
{ "CURRENT_DATE", SYM(CURDATE)},
|
||||||
|
{ "CURRENT_POS", SYM(CURRENT_POS_SYM)},
|
||||||
{ "CURRENT_TIME", SYM(CURTIME)},
|
{ "CURRENT_TIME", SYM(CURTIME)},
|
||||||
{ "CURRENT_TIMESTAMP", SYM(NOW_SYM)},
|
{ "CURRENT_TIMESTAMP", SYM(NOW_SYM)},
|
||||||
{ "CURRENT_USER", SYM(CURRENT_USER)},
|
{ "CURRENT_USER", SYM(CURRENT_USER)},
|
||||||
@ -517,6 +518,7 @@ static SYMBOL symbols[] = {
|
|||||||
{ "SIMPLE", SYM(SIMPLE_SYM)},
|
{ "SIMPLE", SYM(SIMPLE_SYM)},
|
||||||
{ "SLAVE", SYM(SLAVE)},
|
{ "SLAVE", SYM(SLAVE)},
|
||||||
{ "SLAVES", SYM(SLAVES)},
|
{ "SLAVES", SYM(SLAVES)},
|
||||||
|
{ "SLAVE_POS", SYM(SLAVE_POS_SYM)},
|
||||||
{ "SLOW", SYM(SLOW)},
|
{ "SLOW", SYM(SLOW)},
|
||||||
{ "SNAPSHOT", SYM(SNAPSHOT_SYM)},
|
{ "SNAPSHOT", SYM(SNAPSHOT_SYM)},
|
||||||
{ "SMALLINT", SYM(SMALLINT)},
|
{ "SMALLINT", SYM(SMALLINT)},
|
||||||
|
14
sql/log.cc
14
sql/log.cc
@ -5520,6 +5520,18 @@ MYSQL_BIN_LOG::get_most_recent_gtid_list(rpl_gtid **list, uint32 *size)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool
|
||||||
|
MYSQL_BIN_LOG::append_state_pos(String *str)
|
||||||
|
{
|
||||||
|
bool err;
|
||||||
|
|
||||||
|
mysql_mutex_lock(&rpl_global_gtid_binlog_state.LOCK_binlog_state);
|
||||||
|
err= rpl_global_gtid_binlog_state.append_pos(str);
|
||||||
|
mysql_mutex_unlock(&rpl_global_gtid_binlog_state.LOCK_binlog_state);
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool
|
bool
|
||||||
MYSQL_BIN_LOG::find_in_binlog_state(uint32 domain_id, uint32 server_id,
|
MYSQL_BIN_LOG::find_in_binlog_state(uint32 domain_id, uint32 server_id,
|
||||||
rpl_gtid *out_gtid)
|
rpl_gtid *out_gtid)
|
||||||
@ -8508,7 +8520,7 @@ binlog_background_thread(void *arg __attribute__((unused)))
|
|||||||
thd->store_globals();
|
thd->store_globals();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Load the slave replication GTID state from the mysql.rpl_slave_state
|
Load the slave replication GTID state from the mysql.gtid_slave_pos
|
||||||
table.
|
table.
|
||||||
|
|
||||||
This is mostly so that we can start our seq_no counter from the highest
|
This is mostly so that we can start our seq_no counter from the highest
|
||||||
|
@ -779,6 +779,7 @@ public:
|
|||||||
int read_state_from_file();
|
int read_state_from_file();
|
||||||
int write_state_to_file();
|
int write_state_to_file();
|
||||||
int get_most_recent_gtid_list(rpl_gtid **list, uint32 *size);
|
int get_most_recent_gtid_list(rpl_gtid **list, uint32 *size);
|
||||||
|
bool append_state_pos(String *str);
|
||||||
bool find_in_binlog_state(uint32 domain_id, uint32 server_id,
|
bool find_in_binlog_state(uint32 domain_id, uint32 server_id,
|
||||||
rpl_gtid *out_gtid);
|
rpl_gtid *out_gtid);
|
||||||
bool lookup_domain_in_binlog_state(uint32 domain_id, rpl_gtid *out_gtid);
|
bool lookup_domain_in_binlog_state(uint32 domain_id, rpl_gtid *out_gtid);
|
||||||
|
@ -4004,7 +4004,7 @@ int Query_log_event::do_apply_event(Relay_log_info const *rli,
|
|||||||
const_cast<Relay_log_info*>(rli)->gtid_sub_id= 0;
|
const_cast<Relay_log_info*>(rli)->gtid_sub_id= 0;
|
||||||
|
|
||||||
gtid= rli->current_gtid;
|
gtid= rli->current_gtid;
|
||||||
if (rpl_global_gtid_slave_state.record_gtid(thd, >id, sub_id, true))
|
if (rpl_global_gtid_slave_state.record_gtid(thd, >id, sub_id, true, false))
|
||||||
{
|
{
|
||||||
rli->report(ERROR_LEVEL, ER_CANNOT_UPDATE_GTID_STATE,
|
rli->report(ERROR_LEVEL, ER_CANNOT_UPDATE_GTID_STATE,
|
||||||
"Error during COMMIT: failed to update GTID state in "
|
"Error during COMMIT: failed to update GTID state in "
|
||||||
@ -6895,7 +6895,7 @@ int Xid_log_event::do_apply_event(Relay_log_info const *rli)
|
|||||||
const_cast<Relay_log_info*>(rli)->gtid_sub_id= 0;
|
const_cast<Relay_log_info*>(rli)->gtid_sub_id= 0;
|
||||||
|
|
||||||
gtid= rli->current_gtid;
|
gtid= rli->current_gtid;
|
||||||
err= rpl_global_gtid_slave_state.record_gtid(thd, >id, sub_id, true);
|
err= rpl_global_gtid_slave_state.record_gtid(thd, >id, sub_id, true, false);
|
||||||
if (err)
|
if (err)
|
||||||
{
|
{
|
||||||
rli->report(ERROR_LEVEL, ER_CANNOT_UPDATE_GTID_STATE,
|
rli->report(ERROR_LEVEL, ER_CANNOT_UPDATE_GTID_STATE,
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
|
|
||||||
|
|
||||||
const LEX_STRING rpl_gtid_slave_state_table_name=
|
const LEX_STRING rpl_gtid_slave_state_table_name=
|
||||||
{ C_STRING_WITH_LEN("rpl_slave_state") };
|
{ C_STRING_WITH_LEN("gtid_slave_pos") };
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -73,7 +73,7 @@ rpl_slave_state::record_and_update_gtid(THD *thd, Relay_log_info *rli)
|
|||||||
if ((sub_id= rli->gtid_sub_id))
|
if ((sub_id= rli->gtid_sub_id))
|
||||||
{
|
{
|
||||||
rli->gtid_sub_id= 0;
|
rli->gtid_sub_id= 0;
|
||||||
if (record_gtid(thd, &rli->current_gtid, sub_id, false))
|
if (record_gtid(thd, &rli->current_gtid, sub_id, false, false))
|
||||||
return 1;
|
return 1;
|
||||||
update_state_hash(sub_id, &rli->current_gtid);
|
update_state_hash(sub_id, &rli->current_gtid);
|
||||||
}
|
}
|
||||||
@ -186,8 +186,6 @@ rpl_slave_state::truncate_state_table(THD *thd)
|
|||||||
int err= 0;
|
int err= 0;
|
||||||
TABLE *table;
|
TABLE *table;
|
||||||
|
|
||||||
mysql_reset_thd_for_next_command(thd, 0);
|
|
||||||
|
|
||||||
tlist.init_one_table(STRING_WITH_LEN("mysql"),
|
tlist.init_one_table(STRING_WITH_LEN("mysql"),
|
||||||
rpl_gtid_slave_state_table_name.str,
|
rpl_gtid_slave_state_table_name.str,
|
||||||
rpl_gtid_slave_state_table_name.length,
|
rpl_gtid_slave_state_table_name.length,
|
||||||
@ -234,7 +232,7 @@ static const TABLE_FIELD_TYPE mysql_rpl_slave_state_coltypes[4]= {
|
|||||||
|
|
||||||
static const uint mysql_rpl_slave_state_pk_parts[]= {0, 1};
|
static const uint mysql_rpl_slave_state_pk_parts[]= {0, 1};
|
||||||
|
|
||||||
static const TABLE_FIELD_DEF mysql_rpl_slave_state_tabledef= {
|
static const TABLE_FIELD_DEF mysql_gtid_slave_pos_tabledef= {
|
||||||
array_elements(mysql_rpl_slave_state_coltypes),
|
array_elements(mysql_rpl_slave_state_coltypes),
|
||||||
mysql_rpl_slave_state_coltypes,
|
mysql_rpl_slave_state_coltypes,
|
||||||
array_elements(mysql_rpl_slave_state_pk_parts),
|
array_elements(mysql_rpl_slave_state_pk_parts),
|
||||||
@ -256,14 +254,14 @@ protected:
|
|||||||
static Gtid_db_intact gtid_table_intact;
|
static Gtid_db_intact gtid_table_intact;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Check that the mysql.rpl_slave_state table has the correct definition.
|
Check that the mysql.gtid_slave_pos table has the correct definition.
|
||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
gtid_check_rpl_slave_state_table(TABLE *table)
|
gtid_check_rpl_slave_state_table(TABLE *table)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
if ((err= gtid_table_intact.check(table, &mysql_rpl_slave_state_tabledef)))
|
if ((err= gtid_table_intact.check(table, &mysql_gtid_slave_pos_tabledef)))
|
||||||
my_error(ER_GTID_OPEN_TABLE_FAILED, MYF(0), "mysql",
|
my_error(ER_GTID_OPEN_TABLE_FAILED, MYF(0), "mysql",
|
||||||
rpl_gtid_slave_state_table_name.str);
|
rpl_gtid_slave_state_table_name.str);
|
||||||
return err;
|
return err;
|
||||||
@ -286,7 +284,7 @@ gtid_check_rpl_slave_state_table(TABLE *table)
|
|||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
rpl_slave_state::record_gtid(THD *thd, const rpl_gtid *gtid, uint64 sub_id,
|
rpl_slave_state::record_gtid(THD *thd, const rpl_gtid *gtid, uint64 sub_id,
|
||||||
bool in_transaction)
|
bool in_transaction, bool in_statement)
|
||||||
{
|
{
|
||||||
TABLE_LIST tlist;
|
TABLE_LIST tlist;
|
||||||
int err= 0;
|
int err= 0;
|
||||||
@ -297,7 +295,8 @@ rpl_slave_state::record_gtid(THD *thd, const rpl_gtid *gtid, uint64 sub_id,
|
|||||||
ulonglong thd_saved_option= thd->variables.option_bits;
|
ulonglong thd_saved_option= thd->variables.option_bits;
|
||||||
Query_tables_list lex_backup;
|
Query_tables_list lex_backup;
|
||||||
|
|
||||||
mysql_reset_thd_for_next_command(thd, 0);
|
if (!in_statement)
|
||||||
|
mysql_reset_thd_for_next_command(thd, 0);
|
||||||
|
|
||||||
DBUG_EXECUTE_IF("gtid_inject_record_gtid",
|
DBUG_EXECUTE_IF("gtid_inject_record_gtid",
|
||||||
{
|
{
|
||||||
@ -626,7 +625,7 @@ gtid_parser_helper(char **ptr, char *end, rpl_gtid *out_gtid)
|
|||||||
*/
|
*/
|
||||||
int
|
int
|
||||||
rpl_slave_state::load(THD *thd, char *state_from_master, size_t len,
|
rpl_slave_state::load(THD *thd, char *state_from_master, size_t len,
|
||||||
bool reset)
|
bool reset, bool in_statement)
|
||||||
{
|
{
|
||||||
char *end= state_from_master + len;
|
char *end= state_from_master + len;
|
||||||
|
|
||||||
@ -645,7 +644,7 @@ rpl_slave_state::load(THD *thd, char *state_from_master, size_t len,
|
|||||||
|
|
||||||
if (gtid_parser_helper(&state_from_master, end, >id) ||
|
if (gtid_parser_helper(&state_from_master, end, >id) ||
|
||||||
!(sub_id= next_subid(gtid.domain_id)) ||
|
!(sub_id= next_subid(gtid.domain_id)) ||
|
||||||
record_gtid(thd, >id, sub_id, false) ||
|
record_gtid(thd, >id, sub_id, false, in_statement) ||
|
||||||
update(gtid.domain_id, gtid.server_id, sub_id, gtid.seq_no))
|
update(gtid.domain_id, gtid.server_id, sub_id, gtid.seq_no))
|
||||||
return 1;
|
return 1;
|
||||||
if (state_from_master == end)
|
if (state_from_master == end)
|
||||||
@ -980,6 +979,23 @@ rpl_binlog_state::get_most_recent_gtid_list(rpl_gtid **list, uint32 *size)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool
|
||||||
|
rpl_binlog_state::append_pos(String *str)
|
||||||
|
{
|
||||||
|
uint32 i;
|
||||||
|
bool first= true;
|
||||||
|
|
||||||
|
for (i= 0; i < hash.records; ++i)
|
||||||
|
{
|
||||||
|
element *e= (element *)my_hash_element(&hash, i);
|
||||||
|
if (rpl_slave_state_tostring_helper(str, e->last_gtid, &first))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
slave_connection_state::slave_connection_state()
|
slave_connection_state::slave_connection_state()
|
||||||
{
|
{
|
||||||
my_hash_init(&hash, &my_charset_bin, 32,
|
my_hash_init(&hash, &my_charset_bin, 32,
|
||||||
|
@ -91,11 +91,12 @@ struct rpl_slave_state
|
|||||||
int update(uint32 domain_id, uint32 server_id, uint64 sub_id, uint64 seq_no);
|
int update(uint32 domain_id, uint32 server_id, uint64 sub_id, uint64 seq_no);
|
||||||
int truncate_state_table(THD *thd);
|
int truncate_state_table(THD *thd);
|
||||||
int record_gtid(THD *thd, const rpl_gtid *gtid, uint64 sub_id,
|
int record_gtid(THD *thd, const rpl_gtid *gtid, uint64 sub_id,
|
||||||
bool in_transaction);
|
bool in_transaction, bool in_statement);
|
||||||
uint64 next_subid(uint32 domain_id);
|
uint64 next_subid(uint32 domain_id);
|
||||||
int tostring(String *dest, rpl_gtid *extra_gtids, uint32 num_extra);
|
int tostring(String *dest, rpl_gtid *extra_gtids, uint32 num_extra);
|
||||||
bool domain_to_gtid(uint32 domain_id, rpl_gtid *out_gtid);
|
bool domain_to_gtid(uint32 domain_id, rpl_gtid *out_gtid);
|
||||||
int load(THD *thd, char *state_from_master, size_t len, bool reset);
|
int load(THD *thd, char *state_from_master, size_t len, bool reset,
|
||||||
|
bool in_statement);
|
||||||
bool is_empty();
|
bool is_empty();
|
||||||
|
|
||||||
void lock() { DBUG_ASSERT(inited); mysql_mutex_lock(&LOCK_slave_state); }
|
void lock() { DBUG_ASSERT(inited); mysql_mutex_lock(&LOCK_slave_state); }
|
||||||
@ -150,6 +151,7 @@ struct rpl_binlog_state
|
|||||||
uint32 count();
|
uint32 count();
|
||||||
int get_gtid_list(rpl_gtid *gtid_list, uint32 list_size);
|
int get_gtid_list(rpl_gtid *gtid_list, uint32 list_size);
|
||||||
int get_most_recent_gtid_list(rpl_gtid **list, uint32 *size);
|
int get_most_recent_gtid_list(rpl_gtid **list, uint32 *size);
|
||||||
|
bool append_pos(String *str);
|
||||||
rpl_gtid *find(uint32 domain_id, uint32 server_id);
|
rpl_gtid *find(uint32 domain_id, uint32 server_id);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -37,7 +37,8 @@ Master_info::Master_info(LEX_STRING *connection_name_arg,
|
|||||||
checksum_alg_before_fd(BINLOG_CHECKSUM_ALG_UNDEF),
|
checksum_alg_before_fd(BINLOG_CHECKSUM_ALG_UNDEF),
|
||||||
connect_retry(DEFAULT_CONNECT_RETRY), inited(0), abort_slave(0),
|
connect_retry(DEFAULT_CONNECT_RETRY), inited(0), abort_slave(0),
|
||||||
slave_running(0), slave_run_id(0), sync_counter(0),
|
slave_running(0), slave_run_id(0), sync_counter(0),
|
||||||
heartbeat_period(0), received_heartbeats(0), master_id(0), using_gtid(0)
|
heartbeat_period(0), received_heartbeats(0), master_id(0),
|
||||||
|
using_gtid(USE_GTID_NO)
|
||||||
{
|
{
|
||||||
host[0] = 0; user[0] = 0; password[0] = 0;
|
host[0] = 0; user[0] = 0; password[0] = 0;
|
||||||
ssl_ca[0]= 0; ssl_capath[0]= 0; ssl_cert[0]= 0;
|
ssl_ca[0]= 0; ssl_capath[0]= 0; ssl_cert[0]= 0;
|
||||||
@ -152,7 +153,7 @@ void init_master_log_pos(Master_info* mi)
|
|||||||
|
|
||||||
mi->master_log_name[0] = 0;
|
mi->master_log_name[0] = 0;
|
||||||
mi->master_log_pos = BIN_LOG_HEADER_SIZE; // skip magic number
|
mi->master_log_pos = BIN_LOG_HEADER_SIZE; // skip magic number
|
||||||
mi->using_gtid= false;
|
mi->using_gtid= Master_info::USE_GTID_NO;
|
||||||
|
|
||||||
/* Intentionally init ssl_verify_server_cert to 0, no option available */
|
/* Intentionally init ssl_verify_server_cert to 0, no option available */
|
||||||
mi->ssl_verify_server_cert= 0;
|
mi->ssl_verify_server_cert= 0;
|
||||||
@ -447,7 +448,15 @@ file '%s')", fname);
|
|||||||
while (!init_strvar_from_file(buf, sizeof(buf), &mi->file, 0))
|
while (!init_strvar_from_file(buf, sizeof(buf), &mi->file, 0))
|
||||||
{
|
{
|
||||||
if (0 == strncmp(buf, STRING_WITH_LEN("using_gtid=")))
|
if (0 == strncmp(buf, STRING_WITH_LEN("using_gtid=")))
|
||||||
mi->using_gtid= (0 != atoi(buf + sizeof("using_gtid")));
|
{
|
||||||
|
int val= atoi(buf + sizeof("using_gtid"));
|
||||||
|
if (val == Master_info::USE_GTID_CURRENT_POS)
|
||||||
|
mi->using_gtid= Master_info::USE_GTID_CURRENT_POS;
|
||||||
|
else if (val == Master_info::USE_GTID_SLAVE_POS)
|
||||||
|
mi->using_gtid= Master_info::USE_GTID_SLAVE_POS;
|
||||||
|
else
|
||||||
|
mi->using_gtid= Master_info::USE_GTID_NO;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
10
sql/rpl_mi.h
10
sql/rpl_mi.h
@ -130,10 +130,14 @@ class Master_info : public Slave_reporting_capability
|
|||||||
DYNAMIC_ARRAY ignore_server_ids;
|
DYNAMIC_ARRAY ignore_server_ids;
|
||||||
ulong master_id;
|
ulong master_id;
|
||||||
/*
|
/*
|
||||||
True if slave position is set using GTID state rather than old-style
|
Which kind of GTID position (if any) is used when connecting to master.
|
||||||
file/offset binlog position.
|
|
||||||
|
Note that you can not change the numeric values of these, they are used
|
||||||
|
in master.info.
|
||||||
*/
|
*/
|
||||||
bool using_gtid;
|
enum {
|
||||||
|
USE_GTID_NO= 0, USE_GTID_CURRENT_POS= 1, USE_GTID_SLAVE_POS= 2
|
||||||
|
} using_gtid;
|
||||||
};
|
};
|
||||||
int init_master_info(Master_info* mi, const char* master_info_fname,
|
int init_master_info(Master_info* mi, const char* master_info_fname,
|
||||||
const char* slave_info_fname,
|
const char* slave_info_fname,
|
||||||
|
@ -6540,8 +6540,8 @@ ER_GTID_POSITION_NOT_FOUND_IN_BINLOG
|
|||||||
ER_CANNOT_LOAD_SLAVE_GTID_STATE
|
ER_CANNOT_LOAD_SLAVE_GTID_STATE
|
||||||
eng "Failed to load replication slave GTID state from table %s.%s"
|
eng "Failed to load replication slave GTID state from table %s.%s"
|
||||||
ER_MASTER_GTID_POS_CONFLICTS_WITH_BINLOG
|
ER_MASTER_GTID_POS_CONFLICTS_WITH_BINLOG
|
||||||
eng "Requested GTID_POS %u-%u-%llu conflicts with the binary log which contains a more recent GTID %u-%u-%llu. To use the requested GTID_POS, the old binlog must be removed with RESET MASTER to avoid out-of-order binlog"
|
eng "Specified GTID %u-%u-%llu conflicts with the binary log which contains a more recent GTID %u-%u-%llu. If MASTER_GTID_POS=CURRENT_POS is used, the binlog position will override the new value of @@gtid_slave_pos."
|
||||||
ER_MASTER_GTID_POS_MISSING_DOMAIN
|
ER_MASTER_GTID_POS_MISSING_DOMAIN
|
||||||
eng "Requested GTID_POS contains no value for replication domain %u. This conflicts with the binary log which contains GTID %u-%u-%llu. To use the requested GTID_POS, the old binlog must be removed with RESET MASTER to avoid out-of-order binlog"
|
eng "Specified value for @@gtid_slave_pos contains no value for replication domain %u. This conflicts with the binary log which contains GTID %u-%u-%llu. If MASTER_GTID_POS=CURRENT_POS is used, the binlog position will override the new value of @@gtid_slave_pos."
|
||||||
ER_UNTIL_REQUIRES_USING_GTID
|
ER_UNTIL_REQUIRES_USING_GTID
|
||||||
eng "START SLAVE UNTIL master_gtid_pos requires that slave is using GTID"
|
eng "START SLAVE UNTIL master_gtid_pos requires that slave is using GTID"
|
||||||
|
25
sql/slave.cc
25
sql/slave.cc
@ -810,7 +810,8 @@ int start_slave_threads(bool need_slave_mutex, bool wait_for_start,
|
|||||||
while one of the threads is running, they are in use and cannot be
|
while one of the threads is running, they are in use and cannot be
|
||||||
removed.
|
removed.
|
||||||
*/
|
*/
|
||||||
if (mi->using_gtid && !mi->slave_running && !mi->rli.slave_running)
|
if (mi->using_gtid != Master_info::USE_GTID_NO &&
|
||||||
|
!mi->slave_running && !mi->rli.slave_running)
|
||||||
{
|
{
|
||||||
purge_relay_logs(&mi->rli, NULL, 0, &errmsg);
|
purge_relay_logs(&mi->rli, NULL, 0, &errmsg);
|
||||||
mi->master_log_name[0]= 0;
|
mi->master_log_name[0]= 0;
|
||||||
@ -1819,7 +1820,7 @@ after_set_capability:
|
|||||||
restart or reconnect, we might end up re-fetching and hence re-applying
|
restart or reconnect, we might end up re-fetching and hence re-applying
|
||||||
the same event(s) again.
|
the same event(s) again.
|
||||||
*/
|
*/
|
||||||
if (mi->using_gtid && !mi->master_log_name[0])
|
if (mi->using_gtid != Master_info::USE_GTID_NO && !mi->master_log_name[0])
|
||||||
{
|
{
|
||||||
int rc;
|
int rc;
|
||||||
char str_buf[256];
|
char str_buf[256];
|
||||||
@ -1849,7 +1850,9 @@ after_set_capability:
|
|||||||
|
|
||||||
connect_state.append(STRING_WITH_LEN("SET @slave_connect_state='"),
|
connect_state.append(STRING_WITH_LEN("SET @slave_connect_state='"),
|
||||||
system_charset_info);
|
system_charset_info);
|
||||||
if (rpl_append_gtid_state(&connect_state, true))
|
if (rpl_append_gtid_state(&connect_state,
|
||||||
|
mi->using_gtid ==
|
||||||
|
Master_info::USE_GTID_CURRENT_POS))
|
||||||
{
|
{
|
||||||
err_code= ER_OUTOFMEMORY;
|
err_code= ER_OUTOFMEMORY;
|
||||||
errmsg= "The slave I/O thread stops because a fatal out-of-memory "
|
errmsg= "The slave I/O thread stops because a fatal out-of-memory "
|
||||||
@ -1917,7 +1920,7 @@ after_set_capability:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!mi->using_gtid)
|
if (mi->using_gtid == Master_info::USE_GTID_NO)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
If we are not using GTID to connect this time, then instead request
|
If we are not using GTID to connect this time, then instead request
|
||||||
@ -1943,7 +1946,7 @@ after_set_capability:
|
|||||||
(master_row[0] != NULL))
|
(master_row[0] != NULL))
|
||||||
{
|
{
|
||||||
rpl_global_gtid_slave_state.load(mi->io_thd, master_row[0],
|
rpl_global_gtid_slave_state.load(mi->io_thd, master_row[0],
|
||||||
strlen(master_row[0]), false);
|
strlen(master_row[0]), false, false);
|
||||||
}
|
}
|
||||||
else if (check_io_slave_killed(mi->io_thd, mi, NULL))
|
else if (check_io_slave_killed(mi->io_thd, mi, NULL))
|
||||||
goto slave_killed_err;
|
goto slave_killed_err;
|
||||||
@ -2307,8 +2310,8 @@ static bool send_show_master_info_header(THD *thd, bool full,
|
|||||||
FN_REFLEN));
|
FN_REFLEN));
|
||||||
field_list.push_back(new Item_return_int("Master_Server_Id", sizeof(ulong),
|
field_list.push_back(new Item_return_int("Master_Server_Id", sizeof(ulong),
|
||||||
MYSQL_TYPE_LONG));
|
MYSQL_TYPE_LONG));
|
||||||
field_list.push_back(new Item_return_int("Using_Gtid", sizeof(ulong),
|
field_list.push_back(new Item_empty_string("Using_Gtid",
|
||||||
MYSQL_TYPE_LONG));
|
sizeof("Current_Pos")-1));
|
||||||
if (full)
|
if (full)
|
||||||
{
|
{
|
||||||
field_list.push_back(new Item_return_int("Retried_transactions",
|
field_list.push_back(new Item_return_int("Retried_transactions",
|
||||||
@ -2321,7 +2324,8 @@ static bool send_show_master_info_header(THD *thd, bool full,
|
|||||||
10, MYSQL_TYPE_LONG));
|
10, MYSQL_TYPE_LONG));
|
||||||
field_list.push_back(new Item_float("Slave_heartbeat_period",
|
field_list.push_back(new Item_float("Slave_heartbeat_period",
|
||||||
0.0, 3, 10));
|
0.0, 3, 10));
|
||||||
field_list.push_back(new Item_empty_string("Gtid_Pos", gtid_pos_length));
|
field_list.push_back(new Item_empty_string("Gtid_Slave_Pos",
|
||||||
|
gtid_pos_length));
|
||||||
}
|
}
|
||||||
if (protocol->send_result_set_metadata(&field_list,
|
if (protocol->send_result_set_metadata(&field_list,
|
||||||
Protocol::SEND_NUM_ROWS | Protocol::SEND_EOF))
|
Protocol::SEND_NUM_ROWS | Protocol::SEND_EOF))
|
||||||
@ -2488,7 +2492,10 @@ static bool send_show_master_info_data(THD *thd, Master_info *mi, bool full,
|
|||||||
}
|
}
|
||||||
// Master_Server_id
|
// Master_Server_id
|
||||||
protocol->store((uint32) mi->master_id);
|
protocol->store((uint32) mi->master_id);
|
||||||
protocol->store((uint32) (mi->using_gtid != 0));
|
protocol->store((mi->using_gtid==Master_info::USE_GTID_NO ? "No" :
|
||||||
|
(mi->using_gtid==Master_info::USE_GTID_SLAVE_POS ?
|
||||||
|
"Slave_Pos" : "Current_Pos")),
|
||||||
|
&my_charset_bin);
|
||||||
if (full)
|
if (full)
|
||||||
{
|
{
|
||||||
protocol->store((uint32) mi->rli.retried_trans);
|
protocol->store((uint32) mi->rli.retried_trans);
|
||||||
|
@ -301,8 +301,10 @@ struct LEX_MASTER_INFO
|
|||||||
changed variable or if it should be left at old value
|
changed variable or if it should be left at old value
|
||||||
*/
|
*/
|
||||||
enum {LEX_MI_UNCHANGED, LEX_MI_DISABLE, LEX_MI_ENABLE}
|
enum {LEX_MI_UNCHANGED, LEX_MI_DISABLE, LEX_MI_ENABLE}
|
||||||
ssl, ssl_verify_server_cert, heartbeat_opt, repl_ignore_server_ids_opt,
|
ssl, ssl_verify_server_cert, heartbeat_opt, repl_ignore_server_ids_opt;
|
||||||
use_gtid_opt;
|
enum {
|
||||||
|
LEX_GTID_UNCHANGED, LEX_GTID_NO, LEX_GTID_CURRENT_POS, LEX_GTID_SLAVE_POS
|
||||||
|
} use_gtid_opt;
|
||||||
|
|
||||||
void init()
|
void init()
|
||||||
{
|
{
|
||||||
@ -318,9 +320,10 @@ struct LEX_MASTER_INFO
|
|||||||
pos= relay_log_pos= server_id= port= connect_retry= 0;
|
pos= relay_log_pos= server_id= port= connect_retry= 0;
|
||||||
heartbeat_period= 0;
|
heartbeat_period= 0;
|
||||||
ssl= ssl_verify_server_cert= heartbeat_opt=
|
ssl= ssl_verify_server_cert= heartbeat_opt=
|
||||||
repl_ignore_server_ids_opt= use_gtid_opt= LEX_MI_UNCHANGED;
|
repl_ignore_server_ids_opt= LEX_MI_UNCHANGED;
|
||||||
gtid_pos_str.length= 0;
|
gtid_pos_str.length= 0;
|
||||||
gtid_pos_str.str= NULL;
|
gtid_pos_str.str= NULL;
|
||||||
|
use_gtid_opt= LEX_GTID_UNCHANGED;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -2511,7 +2511,7 @@ int start_slave(THD* thd , Master_info* mi, bool net_report)
|
|||||||
slave_errno= ER_BAD_SLAVE_UNTIL_COND;
|
slave_errno= ER_BAD_SLAVE_UNTIL_COND;
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
if (!mi->using_gtid)
|
if (mi->using_gtid == Master_info::USE_GTID_NO)
|
||||||
{
|
{
|
||||||
slave_errno= ER_UNTIL_REQUIRES_USING_GTID;
|
slave_errno= ER_UNTIL_REQUIRES_USING_GTID;
|
||||||
goto err;
|
goto err;
|
||||||
@ -3112,12 +3112,14 @@ bool change_master(THD* thd, Master_info* mi, bool *master_info_added)
|
|||||||
mi->rli.group_relay_log_pos= mi->rli.event_relay_log_pos= lex_mi->relay_log_pos;
|
mi->rli.group_relay_log_pos= mi->rli.event_relay_log_pos= lex_mi->relay_log_pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lex_mi->use_gtid_opt == LEX_MASTER_INFO::LEX_MI_ENABLE)
|
if (lex_mi->use_gtid_opt == LEX_MASTER_INFO::LEX_GTID_SLAVE_POS)
|
||||||
mi->using_gtid= true;
|
mi->using_gtid= Master_info::USE_GTID_SLAVE_POS;
|
||||||
else if (lex_mi->use_gtid_opt == LEX_MASTER_INFO::LEX_MI_DISABLE ||
|
else if (lex_mi->use_gtid_opt == LEX_MASTER_INFO::LEX_GTID_CURRENT_POS)
|
||||||
|
mi->using_gtid= Master_info::USE_GTID_CURRENT_POS;
|
||||||
|
else if (lex_mi->use_gtid_opt == LEX_MASTER_INFO::LEX_GTID_NO ||
|
||||||
lex_mi->log_file_name || lex_mi->pos ||
|
lex_mi->log_file_name || lex_mi->pos ||
|
||||||
lex_mi->relay_log_name || lex_mi->relay_log_pos)
|
lex_mi->relay_log_name || lex_mi->relay_log_pos)
|
||||||
mi->using_gtid= false;
|
mi->using_gtid= Master_info::USE_GTID_NO;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
If user did specify neither host nor port nor any log name nor any log
|
If user did specify neither host nor port nor any log name nor any log
|
||||||
@ -3173,7 +3175,7 @@ bool change_master(THD* thd, Master_info* mi, bool *master_info_added)
|
|||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mi->using_gtid)
|
if (mi->using_gtid != Master_info::USE_GTID_NO)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
Clear the position in the master binlogs, so that we request the
|
Clear the position in the master binlogs, so that we request the
|
||||||
@ -3657,7 +3659,7 @@ int log_loaded_block(IO_CACHE* file)
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Initialise the slave replication state from the mysql.rpl_slave_state table.
|
Initialise the slave replication state from the mysql.gtid_slave_pos table.
|
||||||
|
|
||||||
This is called each time an SQL thread starts, but the data is only actually
|
This is called each time an SQL thread starts, but the data is only actually
|
||||||
loaded on the first call.
|
loaded on the first call.
|
||||||
@ -3669,7 +3671,7 @@ int log_loaded_block(IO_CACHE* file)
|
|||||||
The one containing the current slave state is the one with the maximal
|
The one containing the current slave state is the one with the maximal
|
||||||
sub_id value, within each domain_id.
|
sub_id value, within each domain_id.
|
||||||
|
|
||||||
CREATE TABLE mysql.rpl_slave_state (
|
CREATE TABLE mysql.gtid_slave_pos (
|
||||||
domain_id INT UNSIGNED NOT NULL,
|
domain_id INT UNSIGNED NOT NULL,
|
||||||
sub_id BIGINT UNSIGNED NOT NULL,
|
sub_id BIGINT UNSIGNED NOT NULL,
|
||||||
server_id INT UNSIGNED NOT NULL,
|
server_id INT UNSIGNED NOT NULL,
|
||||||
@ -3705,7 +3707,7 @@ rpl_append_gtid_state(String *dest, bool use_binlog)
|
|||||||
rpl_gtid *gtid_list= NULL;
|
rpl_gtid *gtid_list= NULL;
|
||||||
uint32 num_gtids= 0;
|
uint32 num_gtids= 0;
|
||||||
|
|
||||||
if (opt_bin_log &&
|
if (use_binlog && opt_bin_log &&
|
||||||
(err= mysql_bin_log.get_most_recent_gtid_list(>id_list, &num_gtids)))
|
(err= mysql_bin_log.get_most_recent_gtid_list(>id_list, &num_gtids)))
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
@ -3717,9 +3719,12 @@ rpl_append_gtid_state(String *dest, bool use_binlog)
|
|||||||
|
|
||||||
|
|
||||||
bool
|
bool
|
||||||
rpl_gtid_pos_check(char *str, size_t len)
|
rpl_gtid_pos_check(THD *thd, char *str, size_t len)
|
||||||
{
|
{
|
||||||
|
/* ToDo: Use gtid_strict_mode sysvar, when implemented. */
|
||||||
|
static const bool gtid_strict_mode= false;
|
||||||
slave_connection_state tmp_slave_state;
|
slave_connection_state tmp_slave_state;
|
||||||
|
bool gave_conflict_warning= false, gave_missing_warning= false;
|
||||||
|
|
||||||
/* Check that we can parse the supplied string. */
|
/* Check that we can parse the supplied string. */
|
||||||
if (tmp_slave_state.load(str, len))
|
if (tmp_slave_state.load(str, len))
|
||||||
@ -3754,18 +3759,43 @@ rpl_gtid_pos_check(char *str, size_t len)
|
|||||||
continue;
|
continue;
|
||||||
if (!(slave_gtid= tmp_slave_state.find(binlog_gtid->domain_id)))
|
if (!(slave_gtid= tmp_slave_state.find(binlog_gtid->domain_id)))
|
||||||
{
|
{
|
||||||
my_error(ER_MASTER_GTID_POS_MISSING_DOMAIN, MYF(0),
|
if (gtid_strict_mode)
|
||||||
binlog_gtid->domain_id, binlog_gtid->domain_id,
|
{
|
||||||
binlog_gtid->server_id, binlog_gtid->seq_no);
|
my_error(ER_MASTER_GTID_POS_MISSING_DOMAIN, MYF(0),
|
||||||
break;
|
binlog_gtid->domain_id, binlog_gtid->domain_id,
|
||||||
|
binlog_gtid->server_id, binlog_gtid->seq_no);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else if (!gave_missing_warning)
|
||||||
|
{
|
||||||
|
push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
|
||||||
|
ER_MASTER_GTID_POS_MISSING_DOMAIN,
|
||||||
|
ER(ER_MASTER_GTID_POS_MISSING_DOMAIN),
|
||||||
|
binlog_gtid->domain_id, binlog_gtid->domain_id,
|
||||||
|
binlog_gtid->server_id, binlog_gtid->seq_no);
|
||||||
|
gave_missing_warning= true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (slave_gtid->seq_no < binlog_gtid->seq_no)
|
else if (slave_gtid->seq_no < binlog_gtid->seq_no)
|
||||||
{
|
{
|
||||||
my_error(ER_MASTER_GTID_POS_CONFLICTS_WITH_BINLOG, MYF(0),
|
if (gtid_strict_mode)
|
||||||
slave_gtid->domain_id, slave_gtid->server_id,
|
{
|
||||||
slave_gtid->seq_no, binlog_gtid->domain_id,
|
my_error(ER_MASTER_GTID_POS_CONFLICTS_WITH_BINLOG, MYF(0),
|
||||||
binlog_gtid->server_id, binlog_gtid->seq_no);
|
slave_gtid->domain_id, slave_gtid->server_id,
|
||||||
break;
|
slave_gtid->seq_no, binlog_gtid->domain_id,
|
||||||
|
binlog_gtid->server_id, binlog_gtid->seq_no);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
else if (!gave_conflict_warning)
|
||||||
|
{
|
||||||
|
push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
|
||||||
|
ER_MASTER_GTID_POS_CONFLICTS_WITH_BINLOG,
|
||||||
|
ER(ER_MASTER_GTID_POS_CONFLICTS_WITH_BINLOG),
|
||||||
|
slave_gtid->domain_id, slave_gtid->server_id,
|
||||||
|
slave_gtid->seq_no, binlog_gtid->domain_id,
|
||||||
|
binlog_gtid->server_id, binlog_gtid->seq_no);
|
||||||
|
gave_conflict_warning= true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
my_free(binlog_gtid_list);
|
my_free(binlog_gtid_list);
|
||||||
@ -3780,7 +3810,7 @@ rpl_gtid_pos_check(char *str, size_t len)
|
|||||||
bool
|
bool
|
||||||
rpl_gtid_pos_update(THD *thd, char *str, size_t len)
|
rpl_gtid_pos_update(THD *thd, char *str, size_t len)
|
||||||
{
|
{
|
||||||
if (rpl_global_gtid_slave_state.load(thd, str, len, true))
|
if (rpl_global_gtid_slave_state.load(thd, str, len, true, true))
|
||||||
{
|
{
|
||||||
my_error(ER_FAILED_GTID_STATE_INIT, MYF(0));
|
my_error(ER_FAILED_GTID_STATE_INIT, MYF(0));
|
||||||
return true;
|
return true;
|
||||||
|
@ -70,7 +70,7 @@ void rpl_init_gtid_slave_state();
|
|||||||
void rpl_deinit_gtid_slave_state();
|
void rpl_deinit_gtid_slave_state();
|
||||||
int gtid_state_from_binlog_pos(const char *name, uint32 pos, String *out_str);
|
int gtid_state_from_binlog_pos(const char *name, uint32 pos, String *out_str);
|
||||||
int rpl_append_gtid_state(String *dest, bool use_binlog);
|
int rpl_append_gtid_state(String *dest, bool use_binlog);
|
||||||
bool rpl_gtid_pos_check(char *str, size_t len);
|
bool rpl_gtid_pos_check(THD *thd, char *str, size_t len);
|
||||||
bool rpl_gtid_pos_update(THD *thd, char *str, size_t len);
|
bool rpl_gtid_pos_update(THD *thd, char *str, size_t len);
|
||||||
|
|
||||||
#endif /* HAVE_REPLICATION */
|
#endif /* HAVE_REPLICATION */
|
||||||
|
@ -916,6 +916,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
|
|||||||
%token CUBE_SYM /* SQL-2003-R */
|
%token CUBE_SYM /* SQL-2003-R */
|
||||||
%token CURDATE /* MYSQL-FUNC */
|
%token CURDATE /* MYSQL-FUNC */
|
||||||
%token CURRENT_USER /* SQL-2003-R */
|
%token CURRENT_USER /* SQL-2003-R */
|
||||||
|
%token CURRENT_POS_SYM
|
||||||
%token CURSOR_SYM /* SQL-2003-R */
|
%token CURSOR_SYM /* SQL-2003-R */
|
||||||
%token CURSOR_NAME_SYM /* SQL-2003-N */
|
%token CURSOR_NAME_SYM /* SQL-2003-N */
|
||||||
%token CURTIME /* MYSQL-FUNC */
|
%token CURTIME /* MYSQL-FUNC */
|
||||||
@ -1295,6 +1296,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize);
|
|||||||
%token SIMPLE_SYM /* SQL-2003-N */
|
%token SIMPLE_SYM /* SQL-2003-N */
|
||||||
%token SLAVE
|
%token SLAVE
|
||||||
%token SLAVES
|
%token SLAVES
|
||||||
|
%token SLAVE_POS_SYM
|
||||||
%token SLOW
|
%token SLOW
|
||||||
%token SMALLINT /* SQL-2003-R */
|
%token SMALLINT /* SQL-2003-R */
|
||||||
%token SNAPSHOT_SYM
|
%token SNAPSHOT_SYM
|
||||||
@ -2065,15 +2067,34 @@ master_file_def:
|
|||||||
/* Adjust if < BIN_LOG_HEADER_SIZE (same comment as Lex->mi.pos) */
|
/* Adjust if < BIN_LOG_HEADER_SIZE (same comment as Lex->mi.pos) */
|
||||||
Lex->mi.relay_log_pos = max(BIN_LOG_HEADER_SIZE, Lex->mi.relay_log_pos);
|
Lex->mi.relay_log_pos = max(BIN_LOG_HEADER_SIZE, Lex->mi.relay_log_pos);
|
||||||
}
|
}
|
||||||
| MASTER_USE_GTID_SYM EQ ulong_num
|
| MASTER_USE_GTID_SYM EQ CURRENT_POS_SYM
|
||||||
{
|
{
|
||||||
if (Lex->mi.use_gtid_opt != LEX_MASTER_INFO::LEX_MI_UNCHANGED)
|
if (Lex->mi.use_gtid_opt != LEX_MASTER_INFO::LEX_GTID_UNCHANGED)
|
||||||
{
|
{
|
||||||
my_error(ER_DUP_ARGUMENT, MYF(0), "MASTER_use_gtid");
|
my_error(ER_DUP_ARGUMENT, MYF(0), "MASTER_use_gtid");
|
||||||
MYSQL_YYABORT;
|
MYSQL_YYABORT;
|
||||||
}
|
}
|
||||||
Lex->mi.use_gtid_opt= $3 ?
|
Lex->mi.use_gtid_opt= LEX_MASTER_INFO::LEX_GTID_CURRENT_POS;
|
||||||
LEX_MASTER_INFO::LEX_MI_ENABLE : LEX_MASTER_INFO::LEX_MI_DISABLE;
|
}
|
||||||
|
;
|
||||||
|
| MASTER_USE_GTID_SYM EQ SLAVE_POS_SYM
|
||||||
|
{
|
||||||
|
if (Lex->mi.use_gtid_opt != LEX_MASTER_INFO::LEX_GTID_UNCHANGED)
|
||||||
|
{
|
||||||
|
my_error(ER_DUP_ARGUMENT, MYF(0), "MASTER_use_gtid");
|
||||||
|
MYSQL_YYABORT;
|
||||||
|
}
|
||||||
|
Lex->mi.use_gtid_opt= LEX_MASTER_INFO::LEX_GTID_SLAVE_POS;
|
||||||
|
}
|
||||||
|
;
|
||||||
|
| MASTER_USE_GTID_SYM EQ NO_SYM
|
||||||
|
{
|
||||||
|
if (Lex->mi.use_gtid_opt != LEX_MASTER_INFO::LEX_GTID_UNCHANGED)
|
||||||
|
{
|
||||||
|
my_error(ER_DUP_ARGUMENT, MYF(0), "MASTER_use_gtid");
|
||||||
|
MYSQL_YYABORT;
|
||||||
|
}
|
||||||
|
Lex->mi.use_gtid_opt= LEX_MASTER_INFO::LEX_GTID_NO;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -13254,6 +13275,7 @@ keyword_sp:
|
|||||||
| CONSTRAINT_NAME_SYM {}
|
| CONSTRAINT_NAME_SYM {}
|
||||||
| CONTEXT_SYM {}
|
| CONTEXT_SYM {}
|
||||||
| CONTRIBUTORS_SYM {}
|
| CONTRIBUTORS_SYM {}
|
||||||
|
| CURRENT_POS_SYM {}
|
||||||
| CPU_SYM {}
|
| CPU_SYM {}
|
||||||
| CUBE_SYM {}
|
| CUBE_SYM {}
|
||||||
| CURSOR_NAME_SYM {}
|
| CURSOR_NAME_SYM {}
|
||||||
@ -13440,6 +13462,7 @@ keyword_sp:
|
|||||||
| SIMPLE_SYM {}
|
| SIMPLE_SYM {}
|
||||||
| SHARE_SYM {}
|
| SHARE_SYM {}
|
||||||
| SHUTDOWN {}
|
| SHUTDOWN {}
|
||||||
|
| SLAVE_POS_SYM {}
|
||||||
| SLOW {}
|
| SLOW {}
|
||||||
| SNAPSHOT_SYM {}
|
| SNAPSHOT_SYM {}
|
||||||
| SOFT_SYM {}
|
| SOFT_SYM {}
|
||||||
|
@ -1228,8 +1228,61 @@ static Sys_var_ulonglong Sys_gtid_seq_no(
|
|||||||
|
|
||||||
|
|
||||||
#ifdef HAVE_REPLICATION
|
#ifdef HAVE_REPLICATION
|
||||||
|
static unsigned char opt_gtid_binlog_pos_dummy;
|
||||||
|
static Sys_var_gtid_binlog_pos Sys_gtid_binlog_pos(
|
||||||
|
"gtid_binlog_pos", "Last GTID logged to the binary log, per replication"
|
||||||
|
"domain",
|
||||||
|
READ_ONLY GLOBAL_VAR(opt_gtid_binlog_pos_dummy), NO_CMD_LINE);
|
||||||
|
|
||||||
|
|
||||||
|
uchar *
|
||||||
|
Sys_var_gtid_binlog_pos::global_value_ptr(THD *thd, LEX_STRING *base)
|
||||||
|
{
|
||||||
|
char buf[128];
|
||||||
|
String str(buf, sizeof(buf), system_charset_info);
|
||||||
|
char *p;
|
||||||
|
|
||||||
|
str.length(0);
|
||||||
|
if ((opt_bin_log && mysql_bin_log.append_state_pos(&str)) ||
|
||||||
|
!(p= thd->strmake(str.ptr(), str.length())))
|
||||||
|
{
|
||||||
|
my_error(ER_OUT_OF_RESOURCES, MYF(0));
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (uchar *)p;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static unsigned char opt_gtid_current_pos_dummy;
|
||||||
|
static Sys_var_gtid_current_pos Sys_gtid_current_pos(
|
||||||
|
"gtid_current_pos", "Current GTID position of the server. Per "
|
||||||
|
"replication domain, this is either the last GTID replicated by a "
|
||||||
|
"slave thread, or the GTID logged to the binary log, whichever is "
|
||||||
|
"most recent.",
|
||||||
|
READ_ONLY GLOBAL_VAR(opt_gtid_current_pos_dummy), NO_CMD_LINE);
|
||||||
|
|
||||||
|
|
||||||
|
uchar *
|
||||||
|
Sys_var_gtid_current_pos::global_value_ptr(THD *thd, LEX_STRING *base)
|
||||||
|
{
|
||||||
|
String str;
|
||||||
|
char *p;
|
||||||
|
|
||||||
|
str.length(0);
|
||||||
|
if (rpl_append_gtid_state(&str, true) ||
|
||||||
|
!(p= thd->strmake(str.ptr(), str.length())))
|
||||||
|
{
|
||||||
|
my_error(ER_OUT_OF_RESOURCES, MYF(0));
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return (uchar *)p;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool
|
bool
|
||||||
Sys_var_gtid_pos::do_check(THD *thd, set_var *var)
|
Sys_var_gtid_slave_pos::do_check(THD *thd, set_var *var)
|
||||||
{
|
{
|
||||||
String str, *res;
|
String str, *res;
|
||||||
bool running;
|
bool running;
|
||||||
@ -1242,7 +1295,12 @@ Sys_var_gtid_pos::do_check(THD *thd, set_var *var)
|
|||||||
return true;
|
return true;
|
||||||
if (!(res= var->value->val_str(&str)))
|
if (!(res= var->value->val_str(&str)))
|
||||||
return true;
|
return true;
|
||||||
if (rpl_gtid_pos_check(&((*res)[0]), res->length()))
|
if (thd->in_active_multi_stmt_transaction())
|
||||||
|
{
|
||||||
|
my_error(ER_CANT_DO_THIS_DURING_AN_TRANSACTION, MYF(0));
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (rpl_gtid_pos_check(thd, &((*res)[0]), res->length()))
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
if (!(var->save_result.string_value.str=
|
if (!(var->save_result.string_value.str=
|
||||||
@ -1257,7 +1315,7 @@ Sys_var_gtid_pos::do_check(THD *thd, set_var *var)
|
|||||||
|
|
||||||
|
|
||||||
bool
|
bool
|
||||||
Sys_var_gtid_pos::global_update(THD *thd, set_var *var)
|
Sys_var_gtid_slave_pos::global_update(THD *thd, set_var *var)
|
||||||
{
|
{
|
||||||
bool err;
|
bool err;
|
||||||
|
|
||||||
@ -1283,13 +1341,13 @@ Sys_var_gtid_pos::global_update(THD *thd, set_var *var)
|
|||||||
|
|
||||||
|
|
||||||
uchar *
|
uchar *
|
||||||
Sys_var_gtid_pos::global_value_ptr(THD *thd, LEX_STRING *base)
|
Sys_var_gtid_slave_pos::global_value_ptr(THD *thd, LEX_STRING *base)
|
||||||
{
|
{
|
||||||
String str;
|
String str;
|
||||||
char *p;
|
char *p;
|
||||||
|
|
||||||
str.length(0);
|
str.length(0);
|
||||||
if (rpl_append_gtid_state(&str, true) ||
|
if (rpl_append_gtid_state(&str, false) ||
|
||||||
!(p= thd->strmake(str.ptr(), str.length())))
|
!(p= thd->strmake(str.ptr(), str.length())))
|
||||||
{
|
{
|
||||||
my_error(ER_OUT_OF_RESOURCES, MYF(0));
|
my_error(ER_OUT_OF_RESOURCES, MYF(0));
|
||||||
@ -1300,14 +1358,12 @@ Sys_var_gtid_pos::global_value_ptr(THD *thd, LEX_STRING *base)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static unsigned char opt_gtid_pos_dummy;
|
static unsigned char opt_gtid_slave_pos_dummy;
|
||||||
static Sys_var_gtid_pos Sys_gtid_pos(
|
static Sys_var_gtid_slave_pos Sys_gtid_slave_pos(
|
||||||
"gtid_pos",
|
"gtid_slave_pos",
|
||||||
"The list of global transaction IDs that were last replicated on the "
|
"The list of global transaction IDs that were last replicated on the "
|
||||||
"server, one for each replication domain. This defines where a slave "
|
"server, one for each replication domain.",
|
||||||
"starts replicating from on a master when connecting with global "
|
GLOBAL_VAR(opt_gtid_slave_pos_dummy), NO_CMD_LINE);
|
||||||
"transaction ID.",
|
|
||||||
GLOBAL_VAR(opt_gtid_pos_dummy), NO_CMD_LINE);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
108
sql/sys_vars.h
108
sql/sys_vars.h
@ -2024,12 +2024,114 @@ public:
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Class for @@global.gtid_pos.
|
Class for @@global.gtid_current_pos.
|
||||||
*/
|
*/
|
||||||
class Sys_var_gtid_pos: public sys_var
|
class Sys_var_gtid_current_pos: public sys_var
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Sys_var_gtid_pos(const char *name_arg,
|
Sys_var_gtid_current_pos(const char *name_arg,
|
||||||
|
const char *comment, int flag_args, ptrdiff_t off, size_t size,
|
||||||
|
CMD_LINE getopt)
|
||||||
|
: sys_var(&all_sys_vars, name_arg, comment, flag_args, off, getopt.id,
|
||||||
|
getopt.arg_type, SHOW_CHAR, 0, NULL, VARIABLE_NOT_IN_BINLOG,
|
||||||
|
NULL, NULL, NULL)
|
||||||
|
{
|
||||||
|
option.var_type= GET_STR;
|
||||||
|
}
|
||||||
|
bool do_check(THD *thd, set_var *var)
|
||||||
|
{
|
||||||
|
DBUG_ASSERT(false);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
bool session_update(THD *thd, set_var *var)
|
||||||
|
{
|
||||||
|
DBUG_ASSERT(false);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
bool global_update(THD *thd, set_var *var)
|
||||||
|
{
|
||||||
|
DBUG_ASSERT(false);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
bool check_update_type(Item_result type) {
|
||||||
|
DBUG_ASSERT(false);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
void session_save_default(THD *thd, set_var *var)
|
||||||
|
{
|
||||||
|
DBUG_ASSERT(false);
|
||||||
|
}
|
||||||
|
void global_save_default(THD *thd, set_var *var)
|
||||||
|
{
|
||||||
|
DBUG_ASSERT(false);
|
||||||
|
}
|
||||||
|
uchar *session_value_ptr(THD *thd, LEX_STRING *base)
|
||||||
|
{
|
||||||
|
DBUG_ASSERT(false);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
uchar *global_value_ptr(THD *thd, LEX_STRING *base);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Class for @@global.gtid_binlog_pos.
|
||||||
|
*/
|
||||||
|
class Sys_var_gtid_binlog_pos: public sys_var
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
Sys_var_gtid_binlog_pos(const char *name_arg,
|
||||||
|
const char *comment, int flag_args, ptrdiff_t off, size_t size,
|
||||||
|
CMD_LINE getopt)
|
||||||
|
: sys_var(&all_sys_vars, name_arg, comment, flag_args, off, getopt.id,
|
||||||
|
getopt.arg_type, SHOW_CHAR, 0, NULL, VARIABLE_NOT_IN_BINLOG,
|
||||||
|
NULL, NULL, NULL)
|
||||||
|
{
|
||||||
|
option.var_type= GET_STR;
|
||||||
|
}
|
||||||
|
bool do_check(THD *thd, set_var *var)
|
||||||
|
{
|
||||||
|
DBUG_ASSERT(false);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
bool session_update(THD *thd, set_var *var)
|
||||||
|
{
|
||||||
|
DBUG_ASSERT(false);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
bool global_update(THD *thd, set_var *var)
|
||||||
|
{
|
||||||
|
DBUG_ASSERT(false);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
bool check_update_type(Item_result type) {
|
||||||
|
DBUG_ASSERT(false);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
void session_save_default(THD *thd, set_var *var)
|
||||||
|
{
|
||||||
|
DBUG_ASSERT(false);
|
||||||
|
}
|
||||||
|
void global_save_default(THD *thd, set_var *var)
|
||||||
|
{
|
||||||
|
DBUG_ASSERT(false);
|
||||||
|
}
|
||||||
|
uchar *session_value_ptr(THD *thd, LEX_STRING *base)
|
||||||
|
{
|
||||||
|
DBUG_ASSERT(false);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
uchar *global_value_ptr(THD *thd, LEX_STRING *base);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Class for @@global.gtid_slave_pos.
|
||||||
|
*/
|
||||||
|
class Sys_var_gtid_slave_pos: public sys_var
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
Sys_var_gtid_slave_pos(const char *name_arg,
|
||||||
const char *comment, int flag_args, ptrdiff_t off, size_t size,
|
const char *comment, int flag_args, ptrdiff_t off, size_t size,
|
||||||
CMD_LINE getopt)
|
CMD_LINE getopt)
|
||||||
: sys_var(&all_sys_vars, name_arg, comment, flag_args, off, getopt.id,
|
: sys_var(&all_sys_vars, name_arg, comment, flag_args, off, getopt.id,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user