首页 > 解决方案 > 在 Ubuntu 20.04 上从 MySQL 迁移到 MariaDB

问题描述

我正在尝试在 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 中删除了 mysql 服务器sudo apt purge mysql-server
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.) 我尝试使用 导入我的 dbdumpfile.sql mysql -u root -p < all_dbs.sql,但遇到了这个错误'ERROR 1698 (28000): Access denied for user 'root'@'localhost',所以我使用这些说明来解决这个问题
5.) 当然,这导致了一个新的问题:Unknown collation: 'utf8mb4_0900_ai_ci' #1902,我用sed -i all_dbs.sql -e 's/utf8mb4_0900_ai_ci/utf8mb4_unicode_ci/g'
6 解决了。)现在,当我运行时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")

有小费吗?

标签: mysqllinuxubuntumariadb

解决方案


从文件中删除mysql数据库及其所有表插入all_dbs.sql。MariaDB-10.4+ 不会将其 mysql 表映射到您从中导入的 MySQL-8.0。

您需要查看show create user {user}@{host}show grants for {user}@{host}迁移系统用户。


推荐阅读