日期:2014-05-16  浏览次数:20544 次

用命令 从mysql中 导出/导入数据以及导入导出表结构。(较大数据库的导入导出,速度快)

在命令行下mysql的数据导出有个很好用命令mysqldump,它的参数有一大把,可以这样查看:
mysqldump

最常用的:
mysqldump -u root -proot?db_cetv?table1 table2 > foo.sql

这样就可以将数据库db_cetv的表table1,table2以sql形式导入foo.sql中,其中-uroot参数表示访问数据库的用户名是root,如果有密码还需要加上-p参数

?

?

eg:

mysqldump-u?root -proot?db_cetv?> D:\db_cetv.sql

这个就将db_cetv 导出在D盘的根目录 。。。

?

mysql的数据较大数据库的导入(这个要比source导入要快)如:
window下cmd: ? mysql -u?root -proot?db_cetv?< D:\db_cetv.sql

这样就可以将db_cetv.sql的数据全部导入数据库db_cetv

?

?

???? 1.导出整个数据库

  mysqldump -u?用户名 -p密码??数据库名 > 导出的文件名

  C:\Users\sun> mysqldump -u root -proot db_cetv> e:\db_cetv.sql

?

  2.导出一个表,包括表结构和数据

  mysqldump -u用户名 -p 密码? 数据库名 表名> 导出的文件名

  C:\Users\sun> mysqldump -u?root -proot?db_cetv ?t_users> e:\users.sql

?

  3.导出一个数据库结构( ?-d ?指令, ?可以在cmd内, 输入mysqldump --help 查看了解一下)

  C:\Users\sun> mysqldump -u root -proot ?-d ?db_cetv ?> e:\db_cetv_d.sql

?

?????4.导出一个表,只有表结构

  mysqldump -u 用户名 -p?密码 -d数据库名??表名> 导出的文件名

  C:\Users\sun> mysqldump -u root -proot? -d ?db_cetv ??db_users > e:\db_cetv_users_d.sql

?

?

  5.导入数据库

  常用source 命令

  进入mysql数据库控制台,

  如mysql -u root -p

  mysql>use 数据库

  然后使用source命令,后面参数为脚本文件(如这里用到的.sql)

  mysql>source d:/db_cetv.sql

?

?

好了,总结一下。

1:(看一下文件有哪些不同处,除了 mysql 和mysqldump之外 , ?还有 导出是 >小于号 ,导入是< 大于号,呵呵,希望别混了)

导入:mysql -u root -proot db_cetv < D:/db_cetv.sql

导出:①mysqldump -u root -proot db_cetv >D:/db_cetv.sql

以上两种都是 速度较快的导入导出

另一个导入方式:

? ? ? ?②cmd进入

? ? ? ?mysql -u root -proot(登入mysql)

? ? ? ?use 你的数据库名(如果数据库不在,先创建 语句:create database 库名 charset=utf8;)

? ? ? ?sourcesql所在路径

? ? ? ?回车

以下(网摘)了一部分

?

MySQL导出的SQL语句在导入时有可能会非常非常慢,在处理百万级数据的时候,可能导入要花几小时。在导出时合理使用几个参数,可以大大加快导 入的速度。

  -e 使用包括几个VALUES列表的多行INSERT语法;

  --max_allowed_packet=XXX 客户端/服务器之间通信的缓存区的最大大小;

  --net_buffer_length=XXX TCP/IP和套接字通信缓冲区大小,创建长度达net_buffer_length的行。

  注意:max_allowed_packet 和 net_buffer_length 不能比目标数据库的设定数值 大,否则可能出错。

  首先确定目标数据库的参数值

  mysql> show variables like 'max_allowed_packet';

  mysql> show variables like 'net_buffer_length';

  根据参数值书写 mysqldump 命令,如:

  # mysqldump -uroot -p123 21andy -e --max_allowed_packet=16777216 --net_buffer_length=16384 > 21andy.sql

  OK,现在速度就很快了,主要注意的是导入和导出端的 max_allowed_packet 和 net_buffer_length 这2个参数值设定,弄大点就OK了

  其实,最快的方法,是直接COPY数据库目录,不过记得先停止 MySQL 服务