前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >使用mysqldump导入导出功能备份恢复

使用mysqldump导入导出功能备份恢复

作者头像
繁华是客
发布2025-03-01 21:15:58
发布2025-03-01 21:15:58
6800
代码可运行
举报
运行总次数:0
代码可运行

MySQL 5.7迁移到另一台MySQL 8,然后使用mysqldump导入导出功能来实现升级。

MySQL 5.7 迁移 8.0 (mysqldump导入导出)

我们除了直接升级外,还可以新建实例并将数据导入到新实例里。由于应用、模式、配置兼容性,可能需要一一排错。

下载地址是通过官网找的8.4然后推理得到8.0的地址。

代码语言:javascript
代码运行次数:0
复制
wget https://repo.mysql.com//mysql80-community-release-el8-1.noarch.rpm
yum localinstall mysql80-community-release-el8-1.noarch.rpm

不知为了,gpgcheck检查不通过,估计可能和系统本身自带mysql-server有关。我们当然可以使用自带的,然后通过versionlock的形式锁定特定版本。自带的版本不完整,这里使用MySQL社区源。

同理,安装特定版本需要将部分组件都写上,不然他直接安装最新版。

代码语言:javascript
代码运行次数:0
复制
yum install mysql-community-server-8.0.34-1.el8 mysql-community-client-8.0.34-1.el8 mysql-community-client-plugins-8.0.34-1.el8 mysql-community-libs-8.0.34-1.el8

安装完后禁用源:

代码语言:javascript
代码运行次数:0
复制
# 查询源列表
dnf repolist all
# 禁用源
dnf config-manager --disable mysql80-community
dnf config-manager --disable mysql-tools-community
dnf config-manager --disable mysql-connectors-community

如果数据文件夹另外放置到数据盘请根据5.7版本操作。

在获得临时密码后,我们通常修改密码,但是MySQL 8默认密码规则其实很复杂的,且你不能在修改密码前就修改密码规则。 故而:

代码语言:javascript
代码运行次数:0
复制
ALTER USER 'root'@'localhost' IDENTIFIED BY 'N[IA&@v!g}X^[]Yv[E9gcCXtO';

然后新增用户及权限

代码语言:javascript
代码运行次数:0
复制
CREATE USER 'dbuser1'@'%' IDENTIFIED BY 'dFKhugE3pjnoRDsR';
GRANT ALL PRIVILEGES ON *.* TO 'dbuser1'@'%' WITH GRANT OPTION;

一般的,我们不会允许用户拥有和root同等权限,且我们会新建角色(role),然后分配角色到用户会更符合规范。

我们通过MySQLDump 官方文档 mysqldump –databases db1 db2… > dump.sql或者mysqldump –all-databases来备份。

代码语言:javascript
代码运行次数:0
复制
mysqldump --all-databases

# 远程访问
mysqldump -h 192.168.1.2 -u root -p password --databases db1 > db1.sql

然后通过mysql < dump.sql 导入

代码语言:javascript
代码运行次数:0
复制
mysql -uroot -pdFKhugE3pjnoRDsR < dump_all.sql
# 不使用特殊符号方便直接输入密码导入,但是风险是该密码明文历史可见。

mysql -h 192.168.1.2 -uroot -pdFKhugE3pjnoRDsR < dump_all.sql

如果需要不直接输入密码则需要进入mysql后

代码语言:javascript
代码运行次数:0
复制
source dump_all.sql

导入可能遇到ERROR 1118 (42000): Row size too large (> 8126)错误,直接禁用Strict Mode等导入完成后再启用即可。

代码语言:javascript
代码运行次数:0
复制
SET GLOBAL innodb_strict_mode=OFF;
SET GLOBAL innodb_strict_mode=ON;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-12-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • MySQL 5.7 迁移 8.0 (mysqldump导入导出)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档