精华内容
下载资源
问答
  • mysqldump导出数据库

    2019-04-04 11:47:15
    mysqldump 导出数据库各参数详细说明 mysqldump是mysql用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等。 下面我们详细介绍一下mysqldump导出的...

    mysqldump 导出数据库各参数详细说明

    mysqldump是mysql用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等。

    下面我们详细介绍一下mysqldump导出的各种实例:

    1 导出一个数据库的结构

    mysqldump -d dbname -uroot -p > dbname.sql

    2 导出多个数据库的结构

    mysqldump -d -B dbname1 dbname2 -uroot -p > dbname.sql

    3 导出一个数据库中数据(不包含结构)

    mysqldump -t dbname -uroot -p > dbname.sql

    4 导出多个数据库中数据(不包含结构)

    mysqldump -t -B dbname1 dbname2 -uroot -p > dbname.sql

    5 导出一个数据库的结构以及数据

    mysqldump dbname -uroot -p > dbname.sql

    6 导出多个数据库的结构以及数据

    mysqldump -B dbname1 dbname2 -uroot -p > dbname.sql

    7 导出一个数据库中一个表的结构

    mysqldump -d dbname1 tablename -uroot -p > tablename.sql

    8 导出一个数据库中多个表的结构

    mysqldump -d -B dbname1 --tables tablename1 tablename2 -uroot -p > tablename.sql

    9 导出一个数据库中一个表的数据(不包含结构)

    mysqldump -t dbname1 tablename -uroot -p > tablename.sql

    10 导出一个数据库中多个表的数据(不包含结构)

    mysqldump -t -B dbname1 --tables tablename1 tablename2 -uroot -p > tablename.sql

    11 导出一个数据库中一个表的结构以及数据

    mysqldump dbname1 tablename -uroot -p > tablename.sql

    12 导出一个数据库中多个表的结构以及数据

    mysqldump -B dbname1 --tables tablename1 tablename2 -uroot -p > tablename.sql

    存储过程&函数操作

    1 只导出存储过程和函数(不导出结构和数据,要同时导出结构的话,需要同时使用-d)

    mysqldump -R -ndt dbname -u root -p > dbname.sql

    2 只导出事件

    mysqldump -E -ndt dbname -u root -p > dbname.sql

    3 不导出触发器(触发器是默认导出的–triggers,使用–skip-triggers屏蔽导出触发器)

    mysqldump --skip-triggers dbname1 -u root -p > dbname.sql

    把导出的数据导入到数据库

    mysql -u root -p
    use dbname;
    source dbname.sql

    总结一下:
    -d 结构(–no-data:不导出任何数据,只导出数据库表结构)

    -t 数据(–no-create-info:只导出数据,而不添加CREATE TABLE 语句)

    -n (–no-create-db:只导出数据,而不添加CREATE DATABASE 语句)

    -R (–routines:导出存储过程以及自定义函数)

    -E (–events:导出事件)

    –triggers (默认导出触发器,使用–skip-triggers屏蔽导出)

    -B (–databases:导出数据库列表,单个库时可省略)

    –tables 表列表(单个表时可省略)
    ①同时导出结构以及数据时可同时省略-d和-t
    ②同时 不 导出结构和数据可使用-ntd
    ③只导出存储过程和函数可使用-R -ntd
    ④导出所有(结构&数据&存储过程&函数&事件&触发器)使用-R -E(相当于①,省略了-d -t;触发器默认导出)
    ⑤只导出结构&函数&事件&触发器使用 -R -E -d

    展开全文
  • mysqldump 导出数据库

    2018-12-06 18:50:12
    1、mysqldump导出数据库 ./bin/mysqldump -uroot -p123456 database1 >database1_bak.sql 2、mysql 导入数据库 ./bin/mysql -uroot -p123456 database2 < database1_bak.sql 3、 mysql导出sql查询...

    1、mysqldump导出数据库

    ./bin/mysqldump -uroot -p123456 database1 >database1_bak.sql
    

    2、mysql 导入数据库

    ./bin/mysql -uroot -p123456 database2 < database1_bak.sql
    

    3、 mysql导出sql查询结果

    ./bin/mysql -uroot -123456 -Ddatabase1  -e "select * from p_user" > p_user.txt
    
    展开全文
  • 主要介绍了详解 linux mysqldump 导出数据库、数据、表结构的相关资料,需要的朋友可以参考下
  • mysqldump 导出数据库各参数详细说明

    千次阅读 2018-01-18 15:21:13
    mysqldump 导出数据库各参数详细说明 mysqldump是mysql用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等。 下面我们详细介绍一下mysqldump导出...

    mysqldump 导出数据库各参数详细说明
    mysqldump是mysql用于转存储数据库的实用程序。它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等。
    下面我们详细介绍一下mysqldump导出的各种实例:
     
    1 导出一个数据库的结构
    mysqldump -d dbname -uroot -p > dbname.sql
    2 导出多个数据库的结构
    mysqldump -d -B dbname1 dbname2 -uroot -p > dbname.sql
    3 导出一个数据库中数据(不包含结构)
    mysqldump -t dbname -uroot -p > dbname.sql
    4 导出多个数据库中数据(不包含结构)
    mysqldump -t -B dbname1 dbname2 -uroot -p > dbname.sql
    5 导出一个数据库的结构以及数据
    mysqldump dbname -uroot -p > dbname.sql
    6 导出多个数据库的结构以及数据
    mysqldump -B dbname1 dbname2 -uroot -p > dbname.sql
    7 导出一个数据库中一个表的结构
    mysqldump -d dbname1 tablename -uroot -p > tablename.sql
    8 导出一个数据库中多个表的结构
    mysqldump -d -B dbname1 –tables tablename1 tablename2 -uroot -p > tablename.sql
    9 导出一个数据库中一个表的数据(不包含结构)
    mysqldump -t dbname1 tablename -uroot -p > tablename.sql
    10 导出一个数据库中多个表的数据(不包含结构)
    mysqldump -t -B dbname1 –tables tablename1 tablename2 -uroot -p > tablename.sql
    11 导出一个数据库中一个表的结构以及数据
    mysqldump dbname1 tablename -uroot -p > tablename.sql
    12 导出一个数据库中多个表的结构以及数据
    mysqldump -B dbname1 –tables tablename1 tablename2 -uroot -p > tablename.sql
     
    存储过程&函数操作
    1 只导出存储过程和函数(不导出结构和数据,要同时导出结构的话,需要同时使用-d)
    mysqldump -R -ndt dbname -u root -p > dbname.sql
    2 只导出事件
    mysqldump -E -ndt dbname -u root -p > dbname.sql
    3 不导出触发器(触发器是默认导出的–triggers,使用–skip-triggers屏蔽导出触发器)
    mysqldump –skip-triggers dbname1 -u root -p > dbname.sql
     
    把导出的数据导入到数据库
    mysql -u root -p
    use dbname;
    source dbname.sql
     
    总结一下:
    -d 结构(–no-data:不导出任何数据,只导出数据库表结构)

    -t 数据(–no-create-info:只导出数据,而不添加CREATE TABLE 语句)

    -n (–no-create-db:只导出数据,而不添加CREATE DATABASE 语句)

    -R (–routines:导出存储过程以及自定义函数)

    -E (–events:导出事件)

    –triggers (默认导出触发器,使用–skip-triggers屏蔽导出)

    -B (–databases:导出数据库列表,单个库时可省略)

    –tables 表列表(单个表时可省略)
    ①同时导出结构以及数据时可同时省略-d和-t
    ②同时 不 导出结构和数据可使用-ntd
    ③只导出存储过程和函数可使用-R -ntd
    ④导出所有(结构&数据&存储过程&函数&事件&触发器)使用-R -E(相当于①,省略了-d -t;触发器默认导出)
    ⑤只导出结构&函数&事件&触发器使用 -R -E -d

    展开全文
  • 利用mysqldump导出数据库的子集一、引言假如: 你有一个非常大的正式数据库,和一个空的测试数据库 需要把正式数据库中的部分数据导到测试数据库中用来测试,同时, 希望导入的数据尽可能的保持一致性、完备性 比如...

    利用mysqldump导出数据库的子集

    一、引言

    假如:

    1. 你有一个非常大的正式数据库,和一个空的测试数据库
    2. 需要把正式数据库中的部分数据导到测试数据库中用来测试,同时,
    3. 希望导入的数据尽可能的保持一致性、完备性

    比如,有一个商城的数据库,你希望导出其中的部分数据到测试数据库中,导入的两个主要依据是:

    • 用户表user:购买了商品的部分用户和没有购买商品的部分用户
    • 商品表goods:部分已经有过购买的商品和部分没人购买的商品

    其他表(如订单order、浏览历史view_history则依据已经导出的user表和goods表导出,而诸如文章articles这类属于系统的表则可以独立地部分导出,有些系统配置的表(如shop_config)则需要全部导出。另外一些表你只希望导出空表,因为担心其中的记录会影响测试。

    通过使用mysqldump工具的一些选项,通过管道配合mysql,利用shell脚本把这些命令组织起来,可以做到。

    mysqldump相关选项:

    • -w选项

      指定导出的条件,相当于查询中指定的WHERE语句

    • -d`选项

      不导出数据,只导出表的定义。用于导出空表

    • -t选项

      -d选项相反,只导出数据,不导出表的定义。用来追加记录到已经存在的表。

      mysqldump默认会同时导出表的定义和数据

    其它:

    • msyql-e选项

      用来执行一个sql语句组成的字符串,必须要用双引号包含起来

    • 管道操作符 |

      用来把前一个命令的输出作为后一个命令的输入

    二、实现

    导入数据的源数据库和目的数据库相关配置如下(已经写在shell脚本中):

    #!/bin/bash
    
    REMOTE_DBHOST=a.remote.com
    REMOTE_DBNAME=shop
    REMOTE_DBUSER=root
    REMOTE_DBPASS=root
    
    LOCAL_DBHOST=localhost
    LOCAL_DBNAME=shop
    LOCAL_DBUSER=root
    LOCAL_DBPASS=root
    
    REMOTE_ARGS=" -h${REMOTE_DBHOST} -u${REMOTE_DBUSER} -p${REMOTE_DBPASS} ${REMOTE_DBNAME}"
    LOCAL_ARGS=" -h${LOCAL_DBHOST} -u${LOCAL_DBUSER} -p${LOCAL_DBPASS} ${LOCAL_DBNAME}"

    第一步,筛选相关的用户id。

    function selectUserId() {
      echo "select users ..."
      # 创建一个临时表来存储用户id
      mysql ${REMOTE_ARGS} -e "DROP TABLE IF EXISTS tmp_user_ids; CREATE TABLE tmp_user_ids(id INT NOT NULL PRIMARY KEY);"
      # 选择购买了商品的部分用户,最多导入100个哈
      mysql ${REMOTE_ARGS} -e "INSERT INTO tmp_user_ids SELECT DISTINCT user_id FROM `order` WHERE `status`=1 LIMIT 100"
      # 选择没有购买商品的部分用户,最多20个
      mysql ${REMOTE_ARGS} -e "INSERT INTO tmp_user_ids SELECT id FROM user WHERE id NOT IN (SELECT user_id FROM `order`) LIMIT 20"
    }

    第二步,导入用户表user以及用户的地址表address

    function dumpUserTable() {
      mysqldump ${REMOTE_ARGS} user -w 'id IN (SELECT id FROM tmp_user_ids)' | mysql ${LOCAL_ARGS}
      mysqldump ${REMOTE_ARGS} address -w 'user_id IN (SELECT id FROM tmp_user_ids)' | mysql ${LOCAL_ARGS} 
    }

    第三步,导入用户的订单表order以及订单商品表order_goods

    function dumpOrderTable() {
      mysqldump ${REMOTE_ARGS} order -w 'user_id IN (SELECT id FROM tmp_user_ids)' | mysql ${LOCAL_ARGS}
      # order的视图
      mysql ${REMOTE_ARGS} -e "CREATE VIEW view_order_tmp as SELECT * FROM `order` WHERE user_id IN (SELECT id FROM tmp_user_ids)"
      mysqldump ${REMOTE_ARGS} order_goods -w 'order_id IN (SELECT id view_order_tmp)' | mysql
      # order_goods的视图
      mysql ${REMOTE_ARGS} -e "CREATE VIEW view_order_goods_tmp as SELECT * FROM `order_goods` WHERE order_id IN (SELECT id view_order_tmp)"
    }

    第四步,导入商品表goods

    function dumpGoodsTable() {
      # 导出出售过的商品
      mysqldump ${REMOTE_ARGS} goods -w 'id IN (SELECT goods_id FROM view_order_goods_tmp)' | mysql ${LOCAL_ARGS}
      # 导出未出售过的商品,限10个。因为追加,所以用-t选项
      mysqldump ${REMOTE_ARGS} goods -t -w 'id NOT IN (SELECT goods_id FROM view_order_goods_tmp) LIMIT 10' | mysql ${LOCAL_ARGS}
      # 未出售过商品的视图 
      mysql {$REMOTE_ARGS} -e "CREATE VIEW view_goods_tmp AS (SELECT * FROM goods WHERE id NOT IN (SELECT goods_id FROM view_order_goods_tmp) LIMIT 10)"
      # 导出商品的图片
      mysqldump ${REMOTE_ARGS} goods_images -w 'goods_id IN (SELECT goods_id FROM view_order_goods_tmp)' | mysql ${LOCAL_ARGS}
      mysqldump ${REMOTE_ARGS} goods_images -t -w 'goods_id IN (SELECT goods_id FROM view_goods_tmp)' | mysql ${LOCAL_ARGS}
    }

    第五步,导入其它表。

    function dumpOtherTables() {
      # 导出10篇文章
      mysqldump ${REMOTE_ARGS} articles -w '1 LIMIT 50' | mysql ${LOCAL_ARGS}
      # 商城配置,全部导出
      mysqldump ${REMOTE_ARGS} shop_config | mysql ${LOCAL_ARGS}
      # 评论,导出空表
      mysqldump ${REMOTE_ARGS} comment -d | mysql ${LOCAL_ARGS}
    }

    第六步,清除远程服务器上的临时表和视图

    function cleanTmpTableAndView() {
      mysql ${REMOTE_ARGS} -e "DROP TABLE tmp_user_ids;DROP VIEW view_goods_tmp;DROP VIEW view_order_goods_tmp;DROP VIEW view_order_tmp"
    }

    最后,把以上函数组织起来,运行

    function main() {
      selectUsers;
      dumpUserTable;
      dumpOrderTable;
      dumpGoodsTable;
      dumpOtherTables;
      cleanTmpTableAndView;
    }
    
    # 运行
    main

    注意

    • 编写命令时必须清楚到底是命令针对的是远程的数据库还是在本地的数据库中操作,以免把本地数据库中的表与远程数据库中的表混在一起操作。
    • 若要避免过多的嵌套SELECT查询,可以在源数据库中先建立一个视图来辅助

    三、总结

    mysqldump还有其他很有用处的选项,可用mysqldump --help打印出帮助研究下。

    说明:本篇文章的例子是根据真实用例改编而来的,真实的用例因为与工作相关,当然不可能原原本本的搬出来哈。真实的用例比这个要简单,不需要创建视图,不过表比较多,相同类型操作的表写在一个文件里,然后逐行读取操作。

    展开全文
  • mysqldump导出数据库里某张表的数据 或者某张表里的部分数据之前介绍了mysqldump备份数据库的操作,但有时候我们并不需要备份整个数据库,而是只备份某张表或者某张表的部分数据,这时候再去备份整个数据库,就显得...
  • mysqldump 导出数据库各参数详细说明 mysqldump是mysql用于转存储数据库的实用程序。 它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等。 下面我们详细介绍一下mysqldump...
  • 今天使用mysqldump成功导出数据库,并将.sql文件存储在自定义的路径中。注意导出时应关闭toad for mysql,否则会报错。具体操作参考了百度经验的介绍,链接如下: ...
  • 参数模板: mysqldump -d -u用户名-p密码 -d 数据库名 > 导出文件名; 示例: mysqldump -d -uroot-p123123 -d test > test.sql; 附录: mysqldump参数大全
  • mysqldump导出数据库里某张表的数据 或者某张表里的部分数据 之前介绍了mysqldump备份数据库的操作,但有时候我们并不需要备份整个数据库,而是只备份某张表或者某张表的部分数据,这时候再去备份整个数据库,就显得...
  • 打开后输入mysqldump -u用户名 -p密码 数据库名 > 导出后的名字.sql ...如下图所示,第一条的导出数据库名忘记加.sql了,后两条是正确的。 导出的数据库在存放在bin目录下,如下图选中的两个文件:
  • mysqldump 导出数据库出错

    千次阅读 2016-04-09 21:03:56
    今天linux 下导出数据库出错,如下: mysqldump: Couldn't execute 'show create table `wp_weixin_log`': Table './xiawu1/wp_weixin_log' is marked as crashed and should be repaired (145) mysql> ...
  • 1.mysqldump的几种常用方法: (1)导出整个数据库(包括数据库中的数据) mysqldump -u username -p dbname > dbname.sql (2)导出数据库结构(不含数据) ... mysqldump -u username -p ...(3)导出数据库...
  • mysqldump -u 数据库用户名 -p 数据库名 > 数据库名.sql 然后再输入密码
  • 转载请注明出处:http://blog.csdn.net/l1028386804/article/details/795385231.mysqldump导出所有库mysqldump -uroot -ppassword -A &gt; mysql_dump.sql 2.导出所有+忽略特殊库mysql -e "show databases;...
  • C:\Users\Administrator&...mysqldump -h10.0.3.234 -uroot -pQaz123$%^ cps_message > C:\Users\Administrator\Desktop\cps_message.sql mysqldump: [Warning] Using a password on the command line interface ...
  • mysqldump 导出数据库报错“does not exist when using LOCK TABLES” 现象如下: [ptmind@tz-manage01 ~]$ mysqldump -uroot -p2008 schedule >schedule.sql mysqldump: Got error: 1449: The user specified...
  • 有时候mysql的端口不对外网开放,只能ssh进入linux的机器单独操作mysql,记录一下mysql导入文件导出备份数据库笔记。...导出sql文件:mysqldump -h主机名 -P端口 -u用户名 -p密码 数据库名 > 文件名.sql
  • mysqldump是mysql用于转存储数据库的实用程序...下面我们详细介绍一下mysqldump导出的各种实例: 1 导出一个数据库的结构 mysqldump -d dbname -uroot -p > dbname.sql 2 导出多个数据库的结构 mysqldump -d -B d...
  • 导出数据库下每张表前100条 mysqldump -uroot -p123456 jxdb --where "1=1 limit 100" --lock-all-tables > /root/jxdb_backup_001.sql 或 mysqldump -uroot -p jxdb --where="true limit 100"> /root/jxdb_...
  • percona集群mysqldump导出数据库报错

    千次阅读 2019-06-25 15:25:00
    报错提示:Percona-XtraDB-Cluster prohibits use of LOCK TABLE/FLUSH TABLE <table> WITH READ LOCK with pxc_strict_mode = ENFORCING ...mysqldump -u root -p database > database.sql 在后面加上...
  • 1、最简单的用法: mysqldump -uroot -pPassword [database name] &gt; [dump file] 推荐 /tmp 文件夹之下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 36,173
精华内容 14,469
关键字:

mysqldump导出数据库

mysql 订阅