旧系统:Ubuntu 20.04;
新系统:Debian 11
到目前为止我所做的:
mysqldump -u root -p --all-databases | gzip > fullbackup.sql.gzip
gunzip < fullbackup.sql.gz | mysql -u root -p
目前存在哪些问题:
mysql> select * from mysql.user; REPAIR TABLE user
没有效果我认为搞砸了:
ERROR 1050 (42S01) at line 56937: Table 'user' already exists
请帮助我启动并运行我的新服务器!我不是高级用户。
尝试跑步
mariadb-upgrade -u root -p --force
这为我解决了这个问题。我做了一个空白的新 mariadb 安装(包括 /var/lib/mysql 文件夹擦除)并随后导入了我的数据库,但导入它们似乎还导入了一些需要通过强制升级来逆转的旧结构。如果没有 --force mariadb 声称不需要它,因为数据库已经处于最新状态。在那种情况下这是错误的。
从 MySQL 10.4 开始,mysql.users 不再是一个表,而是 mysql.global_priv 表的视图。
看起来你错过了跑步
mariadb_upgrade
。我没有测试10.5中的mariadb_upgrade是否也可以处理从10.3的升级,通常的方法是升级每个版本(10.3 - > 10.4 - > 10.5)。