mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Bug#35157: mysqldump should use FLUSH TABLES NO_WRITE_TO_BINLOG \
when --master-data is used When using the --master-data option with mysqldump, mysqldump uses a FLUSH TABLES command. However, this statement got replicated to the slave(s), which caused the slave(s) to block unnecessarily while the FLUSH tables command completed. Now, if the master-data option is set to one of the two "on" modes, then use the "LOCAL" qualifier to ensure that it's not replicated. client/mysqldump.c: If master_data is set to one of the two modes, then insert "LOCAL" to the command to FLUSH TABLES so that the slaves aren't told to flush also. mysql-test/r/mysqldump.result: Output of mysqldump changed.
This commit is contained in:
@ -4326,7 +4326,10 @@ static int do_flush_tables_read_lock(MYSQL *mysql_con)
|
|||||||
update starts between the two FLUSHes, we have that bad stall.
|
update starts between the two FLUSHes, we have that bad stall.
|
||||||
*/
|
*/
|
||||||
return
|
return
|
||||||
( mysql_query_with_error_report(mysql_con, 0, "FLUSH TABLES") ||
|
( mysql_query_with_error_report(mysql_con, 0,
|
||||||
|
((opt_master_data != 0) ?
|
||||||
|
"FLUSH /*!40101 LOCAL */ TABLES" :
|
||||||
|
"FLUSH TABLES")) ||
|
||||||
mysql_query_with_error_report(mysql_con, 0,
|
mysql_query_with_error_report(mysql_con, 0,
|
||||||
"FLUSH TABLES WITH READ LOCK") );
|
"FLUSH TABLES WITH READ LOCK") );
|
||||||
}
|
}
|
||||||
|
@ -3565,8 +3565,8 @@ use test;
|
|||||||
create user mysqltest_1@localhost;
|
create user mysqltest_1@localhost;
|
||||||
create table t1(a int, b varchar(34));
|
create table t1(a int, b varchar(34));
|
||||||
reset master;
|
reset master;
|
||||||
mysqldump: Couldn't execute 'FLUSH TABLES': Access denied; you need the RELOAD privilege for this operation (1227)
|
mysqldump: Couldn't execute 'FLUSH /*!40101 LOCAL */ TABLES': Access denied; you need the RELOAD privilege for this operation (1227)
|
||||||
mysqldump: Couldn't execute 'FLUSH TABLES': Access denied; you need the RELOAD privilege for this operation (1227)
|
mysqldump: Couldn't execute 'FLUSH /*!40101 LOCAL */ TABLES': Access denied; you need the RELOAD privilege for this operation (1227)
|
||||||
grant RELOAD on *.* to mysqltest_1@localhost;
|
grant RELOAD on *.* to mysqltest_1@localhost;
|
||||||
mysqldump: Couldn't execute 'SHOW MASTER STATUS': Access denied; you need the SUPER,REPLICATION CLIENT privilege for this operation (1227)
|
mysqldump: Couldn't execute 'SHOW MASTER STATUS': Access denied; you need the SUPER,REPLICATION CLIENT privilege for this operation (1227)
|
||||||
mysqldump: Couldn't execute 'SHOW MASTER STATUS': Access denied; you need the SUPER,REPLICATION CLIENT privilege for this operation (1227)
|
mysqldump: Couldn't execute 'SHOW MASTER STATUS': Access denied; you need the SUPER,REPLICATION CLIENT privilege for this operation (1227)
|
||||||
|
Reference in New Issue
Block a user