问题描述
我正在尝试在 Ubuntu 20.04 LTS 上迁移到 MariaDB 10.5.8。
问题:
我特别是在将我的 MysqLdbdummp.sql 文件导入新的 Mariadb 时遇到问题。
我的脚步
1.) 首先,我将所有 dbs 转储到一个 .sql 文件 MysqLdump -u root -p --all-databases > all_dbs.sql
2.) 然后,我从 ubuntu sudo apt purge MysqL-server
中删除了 MysqL 服务器
3.) 从这里,我安装了 mariadb:sudo apt update && sudo apt upgrade
sudo apt -y install software-properties-common
sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'
sudo add-apt-repository 'deb [arch=amd64] http://mariadb.mirror.globo.tech/repo/10.5/ubuntu focal main'
sudo apt update
sudo apt install mariadb-server mariadb-client
# 我愚蠢地回答“不”,因为它告诉我这样做是安全的...
4.) 我尝试使用 MysqL -u root -p < all_dbs.sql
导入我的 dbdumpfile.sql,但是遇到了这个错误 'ERROR 1698 (28000): Access denied for user 'root'@'localhost'
,所以我使用 these instructions 来解决这个问题
5.) 当然,这导致了一个新问题:UnkNown collation: 'utf8mb4_0900_ai_ci' #1902
,我用 sed -i all_dbs.sql -e 's/utf8mb4_0900_ai_ci/utf8mb4_unicode_ci/g'
解决了这个问题
6.)而且 -Now- 当我运行 MysqL -u root -p < all_dbs.sql
时,它输出ERROR 1005 (HY000) at line 87: Can't create table
MysqL.
db (errno: 168 "UnkNown (generic) error from engine")
有什么建议吗?
解决方法
从您的 mysql
文件中删除 all_dbs.sql
数据库及其所有表插入。 MariaDB-10.4+ 不会将其 mysql 表映射到您要从中导入的 MySQL-8.0。
您需要查看 show create user {user}@{host}
和 show grants for {user}@{host}
才能迁移系统用户。