您的当前位置:首页正文

Mysql数据库导出和导入sql数据库文件命令

2020-11-09 来源:易榕旅网

在使用MySQL数据库时,经常需要备份和恢复数据库,通过导出sql文件备份和直接执行sql文件恢复是非常便捷的方式。本篇文章主要介绍如何对MySQL数据库通过cmd命令导出和导入sql文件。

导出

一、导出数据库

包含数据对象和数据

mysqldump -hhostname -uusername -ppassword databasename > /home/justin/databasename.sql

二、导出数据库表结构

只有数据库表结构

mysqldump -hhostname -uusername -ppassword -d databasename > /home/justin/databasename.sql

三、导出存储过程及函数

  • 1、查询数据库中的存储过程和函数

    方法一:

    select `name` from mysql.proc where db = 'databasename' and `type` = 'PROCEDURE'; -- 存储过程
    select `name` from mysql.proc where db = 'databasename' and `type` = 'FUNCTION'; -- 函数

    方法二:

    show procedure status;
    show function status;
  • 2、mysql导出存储过程及函数

    mysqldump -hhostname -uusername -ppassword -ntd -R databasename > /home/justin/prorandfunc.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

    导入

    1、首先建空数据库

    mysql>create database test;

    2、导入数据库
    方法一:
    (1)选择数据库

     mysql>use test;

    (2)设置数据库编码

     mysql>set names utf8;

    (3)导入数据(注意sql文件的路径)

     mysql>source /home/justin/test.sql;

    方法二:

    mysql -hhostname -uusername -ppassword abc < /home/justin/test.sql;
    显示全文