将mysql数据表数据从一台服务器迁移到另一台服务器

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 这种问题出现在导入表时,也属于权限问题,看mysql中文手册的一段话:>出于安全原因,当读取位于服务器中的文本文件时, www.2cto.com 文件必须位于数据库目录中,或者是全体可读的。另外,要对服务器文件使用LOAD DATA INFILE,您必须拥有FILE权限。

知识共享许可协议
本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。

前提


我本次躺的坑是基于下面的环境的,并且是数据量比较小。如果非一样的条件请自行参考,当然可以参考一下我的思想。

环境
  • 两台都是linux服务器,操作系统是centos
  • 两台服务器中mysql数据库所操作的表结构相同
思想

首先我想用mysql中的outfile将表中的数据导出为txt格式的文件,然后打包使用scp发送到对应另一台服务器上,然后在通过load的infile导入文件形式导入txt文件的数据。

实践(如果有坑,请务必看到最后)


首先当然是确保你的数据库服务启动,由于不同的linux操作系统启动方法不同,这个就自行搜吧!接下来启动你的数据库吧

mysql -uroot -p
#会要求输入密码

使用对用操作的数据库如:stat

use stat

接下来对表进行导出操作,例如对表tools,然后将表导出的数据保存到/home/jie目录下,文件名也为tools

select * from tools into outfile "/home/jie/tools.txt";

如果表多的话可以将表使用tar打包成压缩包的形式传输,下面将form目录打包到/home/jie目录下的form.tar.gz文件

tar -zcvf /home/jie/form.tar.gz /home/jie/form

使用scp进行网络安全传输,文件或者刚才打包的东西

scp [参数] 本地文件 远程用户@远程IP地址:远程目录
# 之后会输入远程用户的密码

传输过来解压,下面是直接解压到当前目录下

tar -zxvf form.tar.gz

然后进行这台服务器的mysql数据库(同上面开始一样),导入数据对应表的数据,如tools表

load data infile "/home/jie/tools.txt" into table tools;

问题一:

ERROR 1 (HY000): Can't create/write to file '/home/jie/tools.txt' (Errcode: 13)

这是在导出表中数据时的问题,出现这种错误你一定远程账户用的不是root,其实就是操作命令包含了路径,此远程用户对应的目录没有写权限。修改目录/home/jie的权限

sudo chmod -R 777 /home/jie

注意:权限一定要改回去,如果你的服务器比较重要是会出大问题的。

问题二:

ERROR 13 (HY000): Can't get stat of '/home/jie/tools.txt' (Errcode: 13)

这种问题出现在导入表时,也属于权限问题,看mysql中文手册的一段话:

出于安全原因,当读取位于服务器中的文本文件时, www.2cto.com 文件必须位于数据库目录中,或者是全体可读的。另外,要对服务器文件使用LOAD DATA INFILE,您必须拥有FILE权限。

解决:

load data local infile "/home/jie/tools.txt" into table tools;

注意:如果导入多张表的时要注意表之间的关系,然后选择导入顺序

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
25天前
|
安全 关系型数据库 MySQL
如何将数据从MySQL同步到其他系统
【10月更文挑战第17天】如何将数据从MySQL同步到其他系统
140 0
|
1月前
|
SQL 前端开发 关系型数据库
全表数据核对 ,行数据核对,列数据核对,Mysql 8.0 实例(sample database classicmodels _No.3 )
全表数据核对 ,行数据核对,列数据核对,Mysql 8.0 实例(sample database classicmodels _No.3 )
46 0
全表数据核对 ,行数据核对,列数据核对,Mysql 8.0 实例(sample database classicmodels _No.3 )
|
6天前
|
存储 Oracle 关系型数据库
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
本文介绍了MySQL InnoDB存储引擎中的数据文件和重做日志文件。数据文件包括`.ibd`和`ibdata`文件,用于存放InnoDB数据和索引。重做日志文件(redo log)确保数据的可靠性和事务的持久性,其大小和路径可由相关参数配置。文章还提供了视频讲解和示例代码。
112 11
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
|
6天前
|
缓存 NoSQL 关系型数据库
Redis和Mysql如何保证数据⼀致?
在项目中,为了解决Redis与Mysql的数据一致性问题,我们采用了多种策略:对于低一致性要求的数据,不做特别处理;时效性数据通过设置缓存过期时间来减少不一致风险;高一致性但时效性要求不高的数据,利用MQ异步同步确保最终一致性;而对一致性和时效性都有高要求的数据,则采用分布式事务(如Seata TCC模式)来保障。
39 14
|
9天前
|
SQL 前端开发 关系型数据库
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
39 9
|
21天前
|
SQL Java 关系型数据库
java连接mysql查询数据(基础版,无框架)
【10月更文挑战第12天】该示例展示了如何使用Java通过JDBC连接MySQL数据库并查询数据。首先在项目中引入`mysql-connector-java`依赖,然后通过`JdbcUtil`类中的`main`方法实现数据库连接、执行SQL查询及结果处理,最后关闭相关资源。
|
18天前
|
SQL 关系型数据库 MySQL
定时任务频繁插入数据导致锁表问题 -> 查询mysql进程
定时任务频繁插入数据导致锁表问题 -> 查询mysql进程
37 1
|
19天前
|
SQL 关系型数据库 MySQL
mysql数据误删后的数据回滚
【11月更文挑战第1天】本文介绍了四种恢复误删数据的方法:1. 使用事务回滚,通过 `pymysql` 库在 Python 中实现;2. 使用备份恢复,通过 `mysqldump` 命令备份和恢复数据;3. 使用二进制日志恢复,通过 `mysqlbinlog` 工具恢复特定位置的事件;4. 使用延迟复制从副本恢复,通过停止和重启从库复制来恢复数据。每种方法都有详细的步骤和示例代码。
|
30天前
|
Apache 数据中心 Windows
将网站迁移到阿里云Windows系统云服务器,访问该站点提示连接被拒绝,如何处理?
将网站迁移到阿里云Windows系统云服务器,访问该站点提示连接被拒绝,如何处理?
|
30天前
|
弹性计算 网络协议 Linux
云服务器评估迁移时间与测试传输速度
云服务器评估迁移时间与测试传输速度