2014-07-13 15:59:49
来 源
中存储网
mysqlcmd
在PHP编程或者其他软件编程中,经常会与MYSQL数据库服务器打交道。大多数的工程师都不习惯使用界面工具来管理MYSQL数据库,加上在特定环境下界面工具根本无法使用。比如:定时备份。这个时候,我们就必须学习一下常用的数据导入导出命令了。环境准备:主机IP

在PHP编程或者其他软件编程中,经常会与MYSQL数据库服务器打交道。大多数的工程师都不习惯使用界面工具来管理MYSQL数据库,加上在特定环境下界面工具根本无法使用。比如:定时备份。

这个时候,我们就必须学习一下常用的数据导入导出命令了。

环境准备:
主机IP为:192.168.56.1
账号:admin
密码:12345678
端口:3306

该账号具有数据库主机的 root 最高权限。

一、MYSQL数据库导出

1、导出数据库服务器所有数据库结构
有时候我们并不想把数据库所有数据都导出来,仅仅只是想知道数据库以及数据库里面对应的表结构。可以用mysqlmysqldump命令来进行数据库结构导出,命令如下:

1 mysqldump -h 192.168.56.1 -u admin -p --all-databases --no-data > e:/output.sql

因为我是在windows系统中做的远程导出,所以,需要打开命令提示符CMD。在界面中执行如下命令即可。

这句代码的意思是,使用mysqldump命令将主机为192.168.56.1的数据库服务器中将所有的数据库(–all-databases)以无数据的形式(–no-data),只导出结构的方式将导出的内容保存在了系统的中E盘下名字为output.sql的文件中。

执行此命令的时候,会提示你输出密码。因为我们的admin数据库账号的密码是12345678。所以,我们输入密码直接回车,再稍等一会儿数据就会保存下来。如果,你的数据库结构过于庞大,可能时间会稍微长一些,耐心等待即可。如果失败,会提示错误。

2、导出数据库服务器所有数据库结构以及表数据
这个操作与第一点唯一不同的是,这种方式直接将数据库服务器的数据也进行了导出。这种方式比较少用。因为,一个数据库主机会存在N多的数据库,而每个数据库可能会有很多的数据。这样就会导致导出的时间可能会长达几个小时,甚至几天。这要根据数据库服务器的性能来衡定。

操作方式与上面相同,命令如下:

1 mysqldump -h 192.168.56.1 -u admin -p --all-databases > e:/output.sql

通过与第1点中对比,我们发现,仅仅是去掉了–no-data参数而已。

3、导出某单个数据库的结构与数据
上面两种方式在实际应用中都还是比较少。我们在工作中最希望的是导出一个数据库的表结构与表数据。如下命令:

1 mysqldump -h 192.168.56.1 -u admin -p mysql > e:/mysql.sql

这一句结合前面几点起来就很好理解。这里的mysql指定的是数据库名称。

4、导出某单个数据库的数据不导表结构
这种方式也比较常用,执行如下命令:

1 mysqldump -h 192.168.56.1 -u admin -p --no-create-info mysql > e:/mysql.sql

这句命令在第3点中只增加了一个参数:–no-create-info。通过这么简单的一个参数就实现了表结构的剔除。

5、只导出数据库中指定的几张表的结构与数据
有时候,我们需要的数据库数据不是全部,可能仅仅是几张表的数据。这种需求是存在的。执行如下命令:

1 mysqldump -h 192.168.56.1 -u admin -p mysql user host > e:/output_table.sql

这句命令的意思是将mysql数据库中的user表和host表的表结构和表数据导出存放到e盘的output_table.sql文件中。此命令简单直观。如果,你想增加多个表的话,直接在host之后添加表名即可,但是表名之间要有空格。

二、MYSQL数据导入

1、通过source命令导入SQL文件。
首先,我们得登录mysql终端,假如我们在e盘有一个mysql.sql数据库文件。这个数据库文件里面没有use mysql语句。只有mysql数据库的表结构与表数据。那么执行的命令应该如下:

2 mysql>source e:/mysql.sql;

如果你的mysql.sql里面有了use mysql语句,那么此处不执行use mysql即可。一般情况下,都不会有use mysql语句,有就算,重复执行也不会有错误出现。

有的人可能会问,我为什么要用这个命令来执行呢?为什么不用另外一个mysql提供的mysqlimport工具呢?
总的来说,有以下几个原因:
1)mysqlimport 不能用在PHP的项目中。
2)常用的是使用source命令在php项目中进行数据的导入。比如:开源产品安装过程中就使用的此语句。

当然,mysqlimprot 也有它自己的优势。比如说,兼容性,多功能导入特性等。

关于mysqlimport我就不多作介绍了。日常开发中使用较少,而且使用起来不是太难。

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。