Skip to content

Commit babd833

Browse files
anthonyryan1grooverdan
authored andcommitted
MDEV-29914: Fix maridab-upgrade when sql_safe_updates = on is set in my.cnf
Tested multiple major version upgrades with sql_safe_updates enabled, and confirmed the issue is resolved. Reviewer: Daniel Black
1 parent 179424d commit babd833

File tree

3 files changed

+63
-0
lines changed

3 files changed

+63
-0
lines changed

mysql-test/main/mysql_upgrade.result

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1006,4 +1006,56 @@ disconnect con1;
10061006
connection default;
10071007
drop table mysql.global_priv;
10081008
rename table mysql.global_priv_bak to mysql.global_priv;
1009+
#
1010+
# mariadb-upgrade fails with sql_safe_updates = on
1011+
#
1012+
set @orig_sql_safe_updates = @@GLOBAL.sql_safe_updates;
1013+
set global sql_safe_updates=ON;
1014+
Phase 1/7: Checking and upgrading mysql database
1015+
Processing databases
1016+
mysql
1017+
mysql.column_stats OK
1018+
mysql.columns_priv OK
1019+
mysql.db OK
1020+
mysql.event OK
1021+
mysql.func OK
1022+
mysql.global_priv OK
1023+
mysql.gtid_slave_pos OK
1024+
mysql.help_category OK
1025+
mysql.help_keyword OK
1026+
mysql.help_relation OK
1027+
mysql.help_topic OK
1028+
mysql.index_stats OK
1029+
mysql.innodb_index_stats OK
1030+
mysql.innodb_table_stats OK
1031+
mysql.plugin OK
1032+
mysql.proc OK
1033+
mysql.procs_priv OK
1034+
mysql.proxies_priv OK
1035+
mysql.roles_mapping OK
1036+
mysql.servers OK
1037+
mysql.table_stats OK
1038+
mysql.tables_priv OK
1039+
mysql.time_zone OK
1040+
mysql.time_zone_leap_second OK
1041+
mysql.time_zone_name OK
1042+
mysql.time_zone_transition OK
1043+
mysql.time_zone_transition_type OK
1044+
mysql.transaction_registry OK
1045+
Phase 2/7: Installing used storage engines... Skipped
1046+
Phase 3/7: Fixing views
1047+
mysql.user OK
1048+
Phase 4/7: Running 'mysql_fix_privilege_tables'
1049+
Phase 5/7: Fixing table and database names
1050+
Phase 6/7: Checking and upgrading tables
1051+
Processing databases
1052+
information_schema
1053+
mtr
1054+
mtr.global_suppressions OK
1055+
mtr.test_suppressions OK
1056+
performance_schema
1057+
test
1058+
Phase 7/7: Running 'FLUSH PRIVILEGES'
1059+
OK
1060+
set global sql_safe_updates=@orig_sql_safe_updates;
10091061
# End of 10.4 tests

mysql-test/main/mysql_upgrade.test

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -485,4 +485,14 @@ drop table mysql.global_priv;
485485
rename table mysql.global_priv_bak to mysql.global_priv;
486486
--remove_file $MYSQLD_DATADIR/mysql_upgrade_info
487487

488+
--echo #
489+
--echo # mariadb-upgrade fails with sql_safe_updates = on
490+
--echo #
491+
492+
set @orig_sql_safe_updates = @@GLOBAL.sql_safe_updates;
493+
set global sql_safe_updates=ON;
494+
--exec $MYSQL_UPGRADE --force 2>&1
495+
--remove_file $MYSQLD_DATADIR/mysql_upgrade_info
496+
set global sql_safe_updates=@orig_sql_safe_updates;
497+
488498
--echo # End of 10.4 tests

scripts/mysql_system_tables_fix.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
# adding a 'SHOW WARNINGS' after the statement.
2626

2727
set sql_mode='';
28+
set sql_safe_updates='OFF';
2829
set storage_engine=Aria;
2930
set enforce_storage_engine=NULL;
3031
set alter_algorithm='DEFAULT';

0 commit comments

Comments
 (0)