ndlli 发表于 2016-10-23 09:54:16

用命令 从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 服务


页: [1]
查看完整版本: 用命令 从mysql中 导出/导入数据以及导入导出表结构。(较大数据库的导入导出,速度快)