Home  >  Article  >  Database  >  MySQL远程数据导出导入_MySQL

MySQL远程数据导出导入_MySQL

WBOY
WBOYOriginal
2016-06-01 13:32:141609browse

bitsCN.com

1 前言部分

由于公司的MySQL是搭建在服务器上,为了避免对服务器进行直接改动,我选用了远程导出和导入MySQL的数据

让我们把目光看到上图,由于实际数据库中neem_hanyang下的两个表alarmdata_h和commerr是空表,我们要做的工作就是把neem_jabil下的两个表的数据导到neem_hamyang去

2 导出

要满足上面的需求,我们必须导出neem_jabil下的两个表alarmdata_h和commerr的数据

在此之前,先让我们把目录切换至MySQL的安装目录,笔者的是C:/Program Files (x86)/MySQL/MySQL Workbench 5.2 CE

如果你装的是MySQL Server版,那么应该是类似这种C:/Program Files/MySQL/MySQL Server 5.5,这时请你进入到它的子文件夹bin下面

假设你现在用的是windows系统,那么让我们在dos下输入cd C:/Program Files (x86)/MySQL/MySQL Workbench 5.2 CE

如果你是装的是Server版,那么输入cd C:/Program Files/MySQL/MySQL Server 5.5/bin 

看到红圈圈出来的部分,这就是我们的两位主角mysql和mysqldump,我们的导入和导出操作都可以通过他们两个任意一个来实现,那么他们两个有什么区别呢

当数据量比较小的时候我们选择mysqldump(它的上限是2M),当数据量比较大的时候我们则选择mysql

接下来我们就可以在dos下使用mysql或是mysqldump命令来进行数据库的导入导出操作了

2.1 mysqldump导出语法以及举例

mysqldump的导出语法如下

mysqldump -h{hostname} [-P{port}] -u{username} -p{password} [--default-character-set=charset] database [tablename] > {you file path}<br>注:-h和[hostname]之间并没有空格相连,后同之,[]扩起来的为可选项,可不填<br>

hostname表示主机名,本地则填localhost,远程则填写你的远程IP,如192.168.0.3

username是你的MySQL登录帐号,password则是登录密码

default-character-set则是你的字符集编码,如gb2312、gbk和utf8(没有横杠哦)

dbname是你的数据库名称,tablename是你的表名,假如你不填写tablename的话则默认导出所有的表

mysqldump -h192.168.0.3 -unikey -p123456 --default-character-set=utf8 neem_jabil commerr > d:/jabil1.sql<br>

通过上面的导出语句,将会在d盘下面创建一个jabil.sql脚本文件

这个脚本文件是可运行的,它包含了commerr表的建表细节以及其所有的数据

待续...

2.2 mysqldump导入语法以及举例

mysqldump的导入有两种语法要介绍,分别是mysqldump导入法和source导入法

2.2.1 mysqldump导入

顾名思义,这种方法则还是用mysqldump这个主角来导入,语法规范如下

mysqldump -h{hostname} [-P{port}] -u{username} -p{password} [--default-character-set=charset] database [tablename] <pre class="brush:php;toolbar:false">注:导入和导出的语法区别是,导入时小于号,导出是大于号

这种导入方式实质就是运行前面所导出的那个sql脚本文件

mysqldump -h192.168.0.3 -unikey -p123456 --default-character-set=utf8 neem_hanyang commerr <h4>2.2.2 source导入</h4><p>source导入不同于前面,它是一个SQL命令,必须登录进入MySQL在命令行那里才可以运行</p><p>而mysqldump实则是一个管理工具,无须登入MySQ在命令行那里运行,只须在dos下运行即可</p><p>回到上面例子所处的dos界面,我们可以用下面的命令来登入MySQL</p><pre class="brush:php;toolbar:false">mysql -h{hostname} [-p{port}] -u{username} -p{password}

举例,我们登入一个远程MySQL可以用下面的命令

mysql -h192.168.0.3 -unikey -p123456

登入之后,进入我们要作用的数据库

mysql > use neem_hanyang;

然后我们可以使用source命令来运行前面导出的sql脚本实现数据的导入

mysql > source d:/jabil.sql;

2.2.3 二者对比

mysqldump虽然好用,但它实际上也是运用先登录在运行脚本的策略,只是其中的细节我们无需关心

但是,因为其中有很多远程连接细节,我们有可能遭遇中文乱码问题

输入下面的命令

mysql > show variables like 'character%';

待续...

所以笔者个人建议,如果是作数据导入的话,宁可多做一个步骤,先登录后使用source命令来导入

3 mysqldump扩展

bitsCN.com
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn