mysql - 在 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")
有小费吗?
解决方案
从文件中删除mysql
数据库及其所有表插入all_dbs.sql
。MariaDB-10.4+ 不会将其 mysql 表映射到您从中导入的 MySQL-8.0。
您需要查看show create user {user}@{host}
并show grants for {user}@{host}
迁移系统用户。
推荐阅读
- python - 如何计算整个数据帧中值的频率
- node.js - NodeJS:Typescript 编译器内存不足
- postgresql - 如何在 postgres 中删除表中的扩展统计信息
- mysql - 问答和博客网站 - 保留一张桌子还是分成 2 或 3 张桌子?
- shader - 如何让 webGL 中的第二个着色器工作?
- slurm - 以用户身份获取 SLURM 集群中允许的最大作业数
- c++ - C++ 中的适配器模式使用私有和公共继承的混合
- python - 我的代码中的动作链问题 python BDD 行为循环
- java - 由于没有安装候选者,无法 OpenJDK 8
- reactjs - TypeScript React 错误:“找不到模块:无法解析 'styled-components'”