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

举报
橙子园 发表于 2022/05/26 00:11:38 2022/05/26
【摘要】 本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。 前提 我本次躺的坑是基于下面的环境的,并且是数据量比较小。如果非一样的条件请自行参考,当然可以参考一下我的思想。 环境 两...

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

前提


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

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

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

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


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

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

  
 
  • 1
  • 2

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

use stat

  
 
  • 1

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

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

  
 
  • 1

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

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

  
 
  • 1

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

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

  
 
  • 1
  • 2

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

tar -zxvf form.tar.gz

  
 
  • 1

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

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

  
 
  • 1

问题一:

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

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

sudo chmod -R 777 /home/jie

  
 
  • 1

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

问题二:

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;

  
 
  • 1

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

文章来源: blog.csdn.net,作者:橙子园,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/Chenftli/article/details/95637338

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。