zoukankan      html  css  js  c++  java
  • mysql使用mysqldump 与 mysqlimport进行数据库迁移

    1.导入数据库

    1)source

    source /home/platvt/product/pc2_create_tables.sql

    2)mysqlimport

    使用mysqlimport导入数据:
     
    出现情况:

    (1)出现 Error: 1146

    [platvt@qa-qd-62-180 tmp]$ mysqlimport -uroot -p --fields-terminated-by=' ' test students 
    Enter password: 
    mysqlimport: Error: 1146, Table 'test.students' doesn't exist, when using table: students
    在导入之前必须数据库里面有对应的表,所以必须先在数据库里面把表建立起来之后才能导入。

    (2)出现  Error: 29

    [platvt@qa-qd-62-180 tmp]$ mysqlimport -uroot -p --fields-terminated-by=' ' test students 
    Enter password: 
    mysqlimport: Error: 29, File '/data/mysqldata/mydata/test/students' not found (Errcode: 2), when using table: students
    如果不指定绝对路径,在导入文件必须放到数据目录下面,否则必须指定绝对路径才能导入。通过ps -ef | grep mysql可以查看到mysql的数据目录的位置:--datadir=/data/mysqldata/mydata
    [platvt@qa-qd-62-180 tmp]$ ps -ef | grep mysql
    root            7068         1    0 Jul10 ?                00:00:00 /bin/sh ./mysqld_safe
    mysql         7324    7068    0 Jul10 ?                00:34:59 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/data/mysqldata/mydata --user=mysql --log-error=/usr/local/mysql/log/error.log --open-files-limit=8192 --pid-file=/usr/local/mysql/sock/mysql.pid --socket=/usr/local/mysql/sock/mysql.sock --port=3306

    (3)出现  Error: 13

    [platvt@qa-qd-62-180 tmp]$ mysqlimport -uroot -p --fields-terminated-by=' ' test /home/platvt/tmp/students 
    Enter password: 
    mysqlimport: Error: 13, Can't get stat of '/home/platvt/tmp/students' (Errcode: 13), when using table: students
    先检查文件的权限,需要有读取数据的权限; 导入时加入--local选项
    [platvt@qa-qd-62-180 tmp]$ mysqlimport -uroot -p --fields-terminated-by=' ' --local test /home/platvt/tmp/students 
    Enter password: 
    test.students: Records: 5    Deleted: 0    Skipped: 1    Warnings: 0
     

    2、导出数据库

    1)导出语法

    mysqldump -u 用户名 -p 数据库名 > 导出的文件名
    mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql
    C:Documents and Settingskeju.wangkj>mysqldump -h ip -unapoli_ccbu_test -p1qaz@2wsx napoli_ccbu_test --skip-l
    ock-tables
     > D:documentsstanleyccbu_napoli_test.sql

    2)导出某用户下面的所有数据库:

    >mysqldump -hip -uoffer -poffer --all-database    --skip-lock-tables > D:documentsstanleycobar_all.sql

    3)导出一个表

      mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
      mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql

    4)导出一个数据库结构:-d

      mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:wcnc_db.sql
      -d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table
    mysqldump -h ip -ustanley -pstanley stanley -d --add-drop-table> pc2_create_tables.sql

     

    1. mysqldump -unormandy -p*** -h10.20.36.26 normandy_dev --skip-lock-tables --add-drop-table -d > 10.20.36.26_normandy_dev.sql 

    3、导入导出实战

        需求:

    1、导出的表和导入的表结构相同
    2、导入的表里面存在数据,且有字增长的字段
    解决方案:
     建立临时表:create table tmp as select 列 from table;
     只导出数据,不导出表结构:mysqldum -t


    4、到处成excel表格

    方法1:命令行导出
    C:>mysql -h172.29.63.17 -unapoli -p*** -e "select   *   from   napoli.queues"   >   D:documentsprojects apoliqueues_17.xls
    mysql -h172.29.63.17 -unapoli -p*** -e "select   *   from   napoli.machines"   >   D:documentsprojects apolimachines_17.xls
    mysql -h172.29.63.17 -unapoli -p*** -e "select   *   from   napoli.physical_queue"   >   D:documentsprojects apoliphysical_queue_17.xls
    mysql -h172.29.63.17 -unapoli -p*** -e "select   *   from   napoli.queue_details"   >   D:documentsprojects apoliqueue_details_17.xls
    mysql -h172.29.63.17 -unapoli -p*** -e "select   *   from   napoli.virtual_topics"   >   D:documentsprojects apolivirtual_topics_17.xls
    mysql -h172.29.63.17 -unapoli -p*** -e "select   *   from   napoli.vtopic_queue"   >   D:documentsprojects apolivtopic_queue_17.xls
     
    方法2:使用工具

    【注意】
    1、只导出一个某用户下面的一个数据库(一个用户下面可能存在多个数据库)
    mysqldump -h10.20.*.* -unapoli_itu_test -pnapoli_itu_test napoli  --skip-lock-tables > /home/leonardo/product/napoli_create_tables_with_data.sql
    2、参看淘宝DBA的mysql导入导出: http://www.taobaodba.com/html/558_loaddata.html
  • 相关阅读:
    C#之线程
    C#反射与进程
    C# XML文件的读取
    超简单的js实现提示效果弹出以及延迟隐藏的功能
    使用JavaScript随机生成数字混合字母的验证码
    用JavaScript写一个简单的倒计时,可以应用在发送短信验证码的“59秒后重新发送验证短信”
    php中curl、fsockopen的应用
    待研究
    做网站用UTF8还是GB2312?
    ECshop 数据库表结构
  • 原文地址:https://www.cnblogs.com/dongchi/p/4204468.html
Copyright © 2011-2022 走看看