MySQL远程数据导出导入_MySQL

WBOY
发布: 2016-06-01 13:32:14
原创
1609 人浏览过

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
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!