最近在研究MySQL数据库的库表迁移问题,主要分为两种情况,一种情况是迁移数据库的表的全部字段,另一种是迁移数据库的表的部分字段。前一种情况是直接使用mysqldump命令来实现,后一种情况则是采用数据写入本地再导入MySQL的思路。显然前一种情况也可以采用后一种情况的思路实现,但使用mysqldump命令的效率明显要高。

一、MySQL迁移数据库库表的全部字段

需求:A库的a表迁移到B库,A库和B库已经存在。

思路:使用mysqldump命令将A库的信息写入sql脚本,然后向B库中执行该脚本。

使用mysqldump命令只需两个步骤就能完成库表的迁移。

(1) 将A库的建表和插入数据的操作写入sql脚本。

mysqldump -uroot -p A > A_dump.sql

可以查看一下导出的sql脚本内容:

(2) 将导出的sql脚本应用到B库。

mysql -uroot -p B < A_dump.sql

查看B库中的数据,发现数据已迁移过来。

二、MySQL跨机器迁移数据库库表的部分字段

需求:将A库所在机器的a表的部分字段数据迁移到B库所在机器的b表,比如表a(id,name,age,address),表b(id,name,age)。

思路:从A库的a表中读出B库b表所需字段的数据,写入到本地文件,然后导入到B库b表。

 

(1) 库A,表a,所在机器10.20.14.47

a表中内容

将库A中表a的字段数据导出,加载到本地文件中,执行如下命令发现会报错。

SELECT id,name,age from a INTO OUTFILE '/home/kwang/field.csv' FIELDS TERMINATED BY ',';  

报错信息:

ERROR  (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

报错的原因时由于MySQL服务具有文件保护机制,不予许用户导出文件到任意目录。

查阅相关资料后,发现MySQL有一个安全文件夹,且允许用户导出数据到该文件夹中,通过“select @@GLOBAL.secure_file_priv; ”命令可以查看该文件夹的路径。

于是,通过以下命令可以导出数据到本地文件:

SELECT id,name,age from a INTO OUTFILE '/var/lib/mysql-files/field.csv' FIELDS TERMINATED BY ',';

查看导出文件field.csv的内容,即库A中a表的部分字段数据。

(2) 库B,表b,所在机器10.20.14.43

将A库所在机器导出的文件拷贝到本地

scp root@10.20.14.47:/var/lib/mysql-files/field.csv /root

进入mysql,将csv文件里的数据加载到库B的表b中。

load data local infile '/home/kwang/field.csv' into table b fields terminated by ',';

查看库B的b表,所需字段数据已成功迁移过来。

【参考链接】

[1] pursuer.chen, MySQL mysqldump数据导出详解.

MySQL数据库的库表迁移的更多相关文章

  1. Mysql数据库 的库表简易操作

    一. 库的操作 1.创建数据库 创建数据库: create database 库名 charset utf8;   charset uft8  可选项 1.2 数据库命名规范: 可以由字母.数字.下划 ...

  2. MySQL数据库的库表基本操作

    一.库操作 1.创建业务数据库 DDL 数据库命名规则:区分大小写.唯一性.不能使用关键字如 create select.不能单独使用数字 语法:CREATE DATABASE 数据库名; CREAT ...

  3. php面试专题---mysql数据库分库分表

    php面试专题---mysql数据库分库分表 一.总结 一句话总结: 通过数据切分技术将一个大的MySQLServer切分成多个小的MySQLServer,既攻克了写入性能瓶颈问题,同一时候也再一次提 ...

  4. mysql管理 ------查看 MySQL 数据库中每个表占用的空间大小

    如果想知道MySQL数据库中每个表占用的空间.表记录的行数的话,可以打开MySQL的 information_schema 数据库.在该库中有一个 TABLES 表,这个表主要字段分别是: TABLE ...

  5. 点评阿里JAVA手册之MySQL数据库 (建表规约、索引规约、SQL语句、ORM映射)

    下载原版阿里JAVA开发手册  [阿里巴巴Java开发手册v1.2.0] 本文主要是对照阿里开发手册,注释自己在工作中运用情况. 本文内容:MySQL数据库 (建表规约.索引规约.SQL语句.ORM映 ...

  6. MySQL数据库查看数据表占用空间大小和记录数

    MySQL数据库中每个表占用的空间.表记录的行数的话,可以打开MySQL的 information_schema 数据库.在该库中有一个 TABLES 表,这个表主要字段分别是: TABLE_SCHE ...

  7. Atitit. 数据库-----catalog与schema的设计区别以及在实际中使用 获取数据库所有库表 java jdbc php  c#.Net

    Atitit. 数据库-----catalog与schema的设计区别以及在实际中使用 获取数据库所有库表 java jdbc php  c#.Net 1. -catalog与schema的设计区别1 ...

  8. 4.mysql数据库创建,表中创建模具模板脚本,mysql_SQL99标准连接查询(恩,外部连接,全外连接,交叉连接)

     mysql数据库创建,表创建模等模板脚本 -- 用root用户登录系统,运行脚本 -- 创建数据库 create database mydb61 character set utf8 ; -- ...

  9. 利用navcat为mysql数据库单独的表赋权限及表结构同步

    为mysql数据库单独的表赋权限 场景:考勤系统需要拿OA数据库td_oa中的flow_run和flow_run_data表中的数据做考勤计算 考勤系统只需要读取这两张表的数据,所以只需要开通一个单独 ...

随机推荐

  1. mysql 数据库常见的一些基本操作 !详不详细你说了算!

    在日常应用中可能一时想不起来,所以有必要整理一份 指令相关的笔记,以是个人比较满意,也比较全面的一份笔记,希望能帮到你,适用初级小白,大神可略过! MYSQL常用命令: 数据备份与还原·注意:不要打分 ...

  2. h5 特效

    地址:http://www.cnblogs.com/sun927/p/5842852.html 几个别人总结的css3炫酷效果,有需要直接拿来用即可,包括以下几个效果: 1.悬浮时放大 2.悬浮时转一 ...

  3. P4016 负载平衡问题(最小费用最大流)

    P4016 负载平衡问题 题目描述 GG 公司有 nn 个沿铁路运输线环形排列的仓库,每个仓库存储的货物数量不等.如何用最少搬运量可以使 nn 个仓库的库存数量相同.搬运货物时,只能在相邻的仓库之间搬 ...

  4. bat 判断命令是否执行成功

    bat 判断命令是否执行成功 连接符形式,&& 表示成功,|| 表示失败,例如: call xxx.bat && (goto succeed) || goto fail ...

  5. Redis入门(一)

    Redis入门 什么是Redis Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库,属于非关系型数据库的一种(NoSQL). Redis 与其他 key - val ...

  6. CF15E Triangles

    思路 有四种方法,L,R,L->R,只走上面的小三角形 然后组合方案数\(2f^2+8f+10\) 然后求f,递推一下就好啦(其实是太麻烦了) 时间和空间复杂度都是\(O(n)\) 代码 #in ...

  7. Java笔记(第六篇-网络通信)

    TCP/IP模式是一种层次结构,共分为四层,分别为应用层.传输层.互联网层和主机到网络层. 在TCP/IP协议栈中,有两个高级协议是网络应用程序编写者应该了解的,即“传输控制协议”(TCP)与“用户数 ...

  8. struts2模糊查询

    dao层 public interface DimDao { //一个条件 public List<User> userdim(User user); //两个条件且关联表格 public ...

  9. Beep调用系统声音

    using System.Runtime.InteropServices; 引用命名空间 [DllImport("kernel32.dll")]public   static   ...

  10. CI环境搭建-创建git

    添加如下配置:  上图说的需每次启动的即下面这个文件: 默认用户名.密码是admin/admin  创建代码仓库:  选择版本库:  使用方法: 1,创建一个文件夹  选择版本库地址:  也可以通过c ...