Bug #70431 | 5.6 CRASHES WHEN READING ANCIENT SYSTEM TABLES | ||
---|---|---|---|
Submitted: | 26 Sep 2013 8:05 | Modified: | 15 Jul 2015 7:11 |
Reporter: | Ruly Kurniawan | Email Updates: | |
Status: | Verified | Impact on me: | |
Category: | MySQL Server: Security: Privileges | Severity: | S1 (Critical) |
Version: | 5.6.13 | OS: | Any (CentOS) |
Assigned to: | CPU Architecture: | Any |
[26 Sep 2013 8:05]
Ruly Kurniawan
[26 Sep 2013 9:05]
MySQL Verification Team
Are you restoring an older version's `mysql` database over the one that comes with 5.6.13? Which version? You can start the server by adding skip-grant-tables to my.cnf and check what the structure of `mysql`.`user` table looks like.
[26 Sep 2013 9:07]
MySQL Verification Team
internally, I have: Bug 16343542 - 5.6 CRASHES WHEN READING ANCIENT SYSTEM TABLES
[26 Sep 2013 9:21]
Ruly Kurniawan
Are you restoring an older version's `mysql` database over the one that comes with 5.6.13? Which version? You can start the server by adding skip-grant-tables to my.cnf and check what the structure of `mysql`.`user` table looks like. Yes, my old MySQL server is 5.0.xx (I forget the revision number). I already un-comment the skip-grant-tables in the my.cnf and it's working now. I can start my mysqld. Can I know what cause this?
[26 Sep 2013 9:42]
MySQL Verification Team
You're essentially wiping out the 5.6 system tables with invalid 5.0 tables. That is not a good thing to do. mysql_upgrade might fix it, but mysql_upgrade is only meant to deal with system tables from 5.5->5.6. A segfault isn't expected, that is what my internal bug report is about. If you want to upgrade from 5.0 to 5.6 via dump/reload, I recommend you skip the `mysql` database and recreate your privileges/users via GRANT statements in 5.6.
[26 Sep 2013 19:49]
MySQL Verification Team
5.6.15 crashes on startup with 5.0.96 mysql.user table. mysqld-debug.exe!Field::val_str()[field.h:634] mysqld-debug.exe!get_field()[table.cc:3118] mysqld-debug.exe!acl_load()[sql_acl.cc:1150] mysqld-debug.exe!acl_reload()[sql_acl.cc:1639] mysqld-debug.exe!acl_init()[sql_acl.cc:1004] mysqld-debug.exe!win_main()[mysqld.cc:5530] mysqld-debug.exe!mysql_service()[mysqld.cc:5717] mysqld-debug.exe!mysqld_main()[mysqld.cc:5910] mysqld-debug.exe!main()[main.cc:26] mysqld-debug.exe!__tmainCRTStartup()[crt0.c:278] mysqld-debug.exe!mainCRTStartup()[crt0.c:189] Marking this as a duplicate of my internal bug. To repeat: ---- start 5.6. drop table mysql.user; create table mysql.user ..... (5.0.96 structure). insert into mysql.user set user='root',host='%',password=''; restart 5.6. ---- The above is considered unsupported, so let us not be surprised if this bug gets rejected or turned into a feature request.
[26 Sep 2013 19:53]
MySQL Verification Team
Our documentation says http://dev.mysql.com/doc/refman/5.6/en/upgrading.html "As a general rule, to upgrade from one release series to another, go to the next series rather than skipping a series. To upgrade from a release series previous to MySQL 5.5, upgrade to each successive release series in turn until you have reached MySQL 5.5, and then proceed with the upgrade to MySQL 5.6.".
[27 Sep 2013 1:25]
Ruly Kurniawan
Noted. Thank you for the explanation.
[15 Jul 2015 7:07]
MySQL Verification Team
Bug #77516 marked as duplicate of this