| Bug #88039 | upgrade to 8.0 fails: duplicate SET values in table from a permissive sql_mode.. | ||
|---|---|---|---|
| Submitted: | 10 Oct 2017 6:18 | Modified: | 30 Oct 2017 13:58 |
| Reporter: | Shane Bester (Platinum Quality Contributor) | Email Updates: | |
| Status: | Closed | Impact on me: | |
| Category: | MySQL Server: Data Dictionary | Severity: | S2 (Serious) |
| Version: | 8.0.3 | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
[30 Oct 2017 13:58]
Daniel Price
Posted by developer: Fixed as of the upcoming 8.0.4, 9.0.0 release, and here's the changelog entry: These errors occurred after an in-place upgrade from MySQL 5.7 to 8.0: Starting the server with an --explicit-defaults-for-timestamp=0 setting returned an Invalid default value for 'cached_time' error. Starting the server with --initialize and --explicit-defaults-for-timestamp=0 configuration settings returned an Invalid default value for 'SET_TIME' error. Duplicate SET data type values caused a Duplicated value in SET error, regardless of the sql_mode configuration setting.

Description: Tables created under blank sql-mode in 5.7 cause 8.0 to fail to start: [Note] [003960] Created Data Dictionary for upgrade [ERROR] [001291] mysqld-debug.exe: Column 'a' has duplicated value '' in SET [ERROR] [003636] Failed to Populate DD tables. [ERROR] [003742] Aborting I cannot figure out how to start 8.0 on this datadir, and even --sql-mode="" doesn't work. How to repeat: On 5.7.19: set sql_mode=""; create database test; use test; create table t(a set('',''))engine=innodb; shutdown; Try start 8.0 on the 5.7 datadir, it fails.