File: mysql_upgrade.test

package info (click to toggle)
mysql-8.0 8.0.43-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,273,924 kB
  • sloc: cpp: 4,684,605; ansic: 412,450; pascal: 108,398; java: 83,641; perl: 30,221; cs: 27,067; sql: 26,594; sh: 24,181; python: 21,816; yacc: 17,169; php: 11,522; xml: 7,388; javascript: 7,076; makefile: 2,194; lex: 1,075; awk: 670; asm: 520; objc: 183; ruby: 97; lisp: 86
file content (154 lines) | stat: -rw-r--r-- 4,740 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
--source include/big_test.inc
--source include/not_valgrind.inc
--let $MYSQLD_DATADIR= `select @@datadir`

--source include/mysql_upgrade_preparation.inc

#
# Bug #28547424 - MYSQL_UPGRADE FAILES WITH SYNTAX ERROR ON INPLACE FROM 5.7 TO 8.0
#

--let $sql_mode_old= `SELECT @@sql_mode`

--let $MYSQLD_LOG= $MYSQLTEST_VARDIR/log/mysql_upgrade_test.log
--replace_result $MYSQLD_LOG MYSQLD_LOG
--let $restart_parameters = restart:--upgrade=FORCE --sql-mode=$sql_mode_old,ANSI_QUOTES --log-error=$MYSQLD_LOG
--let $wait_counter= 10000
--source include/restart_mysqld.inc

--echo # There should be no errors
--let SEARCH_FILE= $MYSQLD_LOG

--let SEARCH_PATTERN= \[ERROR\]
--source include/search_pattern.inc

--echo # mysql_upgrade_info file should be created successfully.
--let SEARCH_PATTERN= Could not open server upgrade info file \'.*\' for writing\. Please make sure the file is writable\.
--source include/search_pattern.inc

--remove_file $MYSQLD_LOG

--echo # Restart server with defaults
--let $restart_parameters = restart:
--source include/restart_mysqld.inc

--echo #
--echo # Bug #27549249: MYSQL_UPGRADE FAILED TO CHANGE @@SESSION.SQL_LOG_BIN
--echo #   WHEN AUTOCOMMIT IS OFF
--echo #

# Filter out ndb_binlog_index to mask differences due to running with or
# without ndb.
--let $restart_parameters = restart:--upgrade=FORCE --autocommit=0
--let $wait_counter= 10000
--source include/restart_mysqld.inc

--echo # Restart server with defaults
--let $restart_parameters = restart:
--source include/restart_mysqld.inc

--echo #
--echo # Bug #28392985: SESSION USER DOES NOT HAVE PRIV SESSION_VARIABLES_ADMIN IN UPGRADED DATABASE
--echo #

SHOW GRANTS FOR "mysql.session"@localhost;
REVOKE SESSION_VARIABLES_ADMIN ON *.* FROM "mysql.session"@localhost;

# Filter out ndb_binlog_index to mask differences due to running with or
# without ndb.
--let $restart_parameters = restart:--upgrade=FORCE
--let $wait_counter= 10000
--source include/restart_mysqld.inc

--echo # Must have SESSION_VARIABLES_ADMIN;
SHOW GRANTS FOR "mysql.session"@localhost;

--echo #
--echo # Bug #28855207: 8.0.13 - MYSQL_UPGRADE FAILS DUE TO PRIMARY KEY ERROR WITHOUT STATING THE TABLE
--echo #

--let restart_parameters=restart: --sql_require_primary_key=1 --upgrade=FORCE
--let $wait_counter= 10000
--source include/restart_mysqld.inc

--echo #
--echo # Bug #29702060: BE MORE ROBUST IF MYSQL_UPGRADE_INFO IS NOT WRITABLE
--echo #

--file_exists $MYSQLD_DATADIR/mysql_upgrade_info
--chmod 0000 $MYSQLD_DATADIR/mysql_upgrade_info

--let $MYSQLD_LOG= $MYSQLTEST_VARDIR/log/mysql_upgrade_file_test.log
--replace_result $MYSQLD_LOG MYSQLD_LOG
--let $restart_parameters = restart:--upgrade=FORCE --log-error=$MYSQLD_LOG
--let $wait_counter= 10000
--source include/restart_mysqld.inc

--echo
--let SEARCH_FILE= $MYSQLD_LOG
--let SEARCH_PATTERN= Could not open server upgrade info file \'.*\' for writing\. Please make sure the file is writable\.
--source include/search_pattern.inc

--chmod 0777 $MYSQLD_DATADIR/mysql_upgrade_info
--remove_file $MYSQLD_LOG

--echo # Cleanup

let $restart_parameters = restart: ;
--source include/restart_mysqld.inc

--source include/mysql_upgrade_cleanup.inc

--echo #
--echo # Bug #33165861: WL#14183 new privileges not taken into account for upgrades
--echo #

CREATE USER u1,u2;
GRANT CREATE USER ON *.* TO u1;
GRANT SYSTEM_VARIABLES_ADMIN ON *.* TO u2;
--echo # There should be no PASSWORDLESS_USER_ADMIN privilege
SHOW GRANTS FOR u1;
--echo # There should be no AUTHENTICATION_POLICY_ADMIN privilege
SHOW GRANTS FOR u2;

# remove these privielges
REVOKE PASSWORDLESS_USER_ADMIN, AUTHENTICATION_POLICY_ADMIN ON *.* FROM root@localhost;

--let $restart_parameters = restart:--upgrade=FORCE
--let $wait_counter= 10000
--source include/restart_mysqld.inc

--echo # Must have PASSWORDLESS_USER_ADMIN privilege
SHOW GRANTS FOR u1;
--echo # Must have AUTHENTICATION_POLICY_ADMIN privilege
SHOW GRANTS FOR u2;
--echo # Must have AUTHENTICATION_POLICY_ADMIN, PASSWORDLESS_USER_ADMIN privilegea
SHOW GRANTS FOR root@localhost;
# Cleanup
DROP USER u1,u2;

--echo #
--echo # Bug#34068378: Grant SENSITIVE_VARIABLES_OBSERVER in case of database upgrade
--echo #

CREATE USER u34068378;
GRANT SYSTEM_VARIABLES_ADMIN ON *.* TO u34068378;
--echo # There should be no SENSITIVE_VARIABLES_OBSERVER privilege
SHOW GRANTS for u34068378;

# remove SENSITIVE_VARIABLES_OBSERVER from root
REVOKE SENSITIVE_VARIABLES_OBSERVER ON *.* FROM root@localhost;

--let $restart_parameters = restart:--upgrade=FORCE
--let $wait_counter= 10000
--source include/restart_mysqld.inc

--echo # Must have SENSITIVE_VARIABLES_OBSERVER privilege
SHOW GRANTS for u34068378;
SHOW GRANTS for root@localhost;

# cleanup
DROP USER u34068378;

--echo
--echo End of tests