mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 03:52:35 +01:00
MDEV-11170: MariaDB 10.2 cannot start on MySQL 5.7 datadir:
Fatal error: mysql.user table is damaged or in unsupported 3.20 format The problem stems from MySQL 5.7.6. According to MySQL documentation: In MySQL 5.7.6, the Password column was removed and all credentials are stored in the authentication_string column. If opening a MySQL 5.7.6 (and up) datadir with MariaDB 10.2, the user table appears corrupted. In order to fix this, the server must be started with --skip-grant-tables and then a subsequent mysql_upgrade command must be issued. This patch updates the mysql_upgrade command to also add the removed Password column. The password column is necessary, otherwise the mysql_upgrade script fails due to the Event_scheduler not being able to start, as it can't find Event_priv in the table where it ought to be. MySQL's version has column position 28 (0 index) vs our datadir version expects position 29.
This commit is contained in:
parent
e1f0f0dd06
commit
fdfdea40f1
1 changed files with 6 additions and 0 deletions
|
@ -164,6 +164,12 @@ ALTER TABLE user
|
|||
MODIFY Host char(60) NOT NULL default '',
|
||||
MODIFY User char(80) NOT NULL default '',
|
||||
ENGINE=MyISAM, CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;
|
||||
|
||||
# In MySQL 5.7.6 the Password column is removed. Recreate it to preserve the number
|
||||
# of columns MariaDB expects in the user table.
|
||||
ALTER TABLE user
|
||||
ADD Password char(41) character set latin1 collate latin1_bin NOT NULL default '' AFTER User;
|
||||
|
||||
ALTER TABLE user
|
||||
MODIFY Password char(41) character set latin1 collate latin1_bin NOT NULL default '',
|
||||
MODIFY Select_priv enum('N','Y') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
|
|
Loading…
Reference in a new issue