zoukankan      html  css  js  c++  java
  • mysql数据库指令导入导出

    mysql数据库导出使用  /mysql/bin/mysqldump指令

    数据库导出

    导出指令:

                        [mysql安装目录]/bin/mysqldump -u[username] -p[password] -h[host] -P[port] [databaseName] [[tableName1] [tableName2]] > [dirPath][filename].sql

    上面指令中中括号里面的内容根据具体情况进行替换,如果是导出本地数据库中且数据库端口为默认3306中的数据,则不需要输入 -h[host] -P[port] 参数。

    下面以导出服务器10.102.112.109机器上数据库为例,其中数据库名为:FR_BLOG,数据库端口为:7712,用户名:admin,密码:adminpass

                      //导出整个数据库数据
                      [mysql安装目录]/bin/mysqldump -uadmin -padminpass -h10.102.112.109 -P7712 FR_BLOG > /home/mysqldump/FR_BLOG.sql
                      //导出其中一个表:比如bl_user表
                      [mysql安装目录]/bin/mysqldump -uadmin -padminpass -h10.102.112.109 -P7712 FR_BLOG bl_user > /home/mysqldump/bl_user.sql

     按条件导出数据

    有时候我们不需要导出一张表中的所有数据,mysqldump也提供了按条件导出的功能,--where(或者-w)="condition"

    例如,我们要导出上述bl_user表中userid大于1000的数据,可以用如下指令:

                   [mysql安装目录]/bin/mysqldump -uadmin -padminpass -h10.102.112.109 -P7712 FR_BLOG bl_user --where="userid>1000" > /home/mysqldump/bl_user.sql

    导入:

    数据库导入一般使用source指令,首先需要登录数据库,还以上述数据库为例,假设我们在数据库中新建了一个库名为:FR_BLOG_BACKUP,然后想把上述导出的bl_user.sql数据导入该库中,指令如下:

                                //首先需要登录数据库
                                [mysql安装目录]/bin/mysql -uadmin -padminpass -h10.102.112.109 -P7712
    
                                //然后切换到我们要导入数据的库
                                mysql> use FR_BLOG_BACKUP;
    
                                //导入数据
                                mysql> source /home/mysqldump/bl_user.sql

    备注:

    这个方法导入大批量数据也是没问题的,但是在实践中发现在进行大量数据导入的时候,可能需要对导出的.sql文件进行简单的修改,我在项目中试过7G数据的转存,第一次导入成功了,后来每次再导入都会导致整个服务器的数据库LOCK,而且数据不能导入,后来发现.sql文件中有一行为:  LOCK TABLES `page_view` WRITE;  

    这是为了较快的写入数据而锁表操作,但是在导入的时候却导致了插入失败,而且影响其他数据库的使用,随意最好把这句注释掉,因为.sql文件太大,用vim打开基本上是不可能的,可以使用下面的指令修改:

                                                                            sed -i "[linenum]s/LOCK/--LOCK/1" [filename].sql

    其中  [linenum]  是 LOCK TABLES `page_view` WRITE; 所在行的行号, [filename] 为要修改的.sql文件

     [linenum] 可以使用head指令查看, head -n [num] [filename].sql 

  • 相关阅读:
    MTU 理解和遇到的一些问题
    tm使用
    C++字符串中转义符
    安卓系统修改host文件简单教程
    公有继承的一个理解
    模板打印函数
    linux 设置时区
    ACE中的inline
    SecureCRT中脚本进行交互,发送Ctrl+C
    C++中多态的实现原理
  • 原文地址:https://www.cnblogs.com/xiaocainiao2hao/p/5619828.html
Copyright © 2011-2022 走看看