MySQL导入、导出、数据库定时备份

  本篇使用的MySQL版本是5.7.30,注意不同版本之间可能会有差异。

  一、导出操作

  1、查找mysqldump命令位置

which mysqldump

  2、mysqldump导出示例

  用户名和密码分别是root和123456;导出远程库,使用-h+IP和-port+端口,如下所示。后面的命令默认导出本地库。

/usr/bin/mysqldump -h192.168.43.151 -port3306 -uroot -p123456 mydb1 > /aa.sql

  1)导出所有数据库

/usr/bin/mysqldump -uroot -p123456 --all-databases  > /aa.sql

  2)导出数据库mydb1

/usr/bin/mysqldump -uroot -p123456 mydb1 > /aa.sql

  3)导出数据库mydb1、mydb2

/usr/bin/mysqldump -uroot -p123456 --databases mydb1 mydb2 > /aa.sql

  4)导出数据库mydb1的表t_test1

/usr/bin/mysqldump -uroot -p123456 mydb1 t_test1 > /aa.sql

  5)导出数据库mydb1的表t_test1和t_test2

/usr/bin/mysqldump -uroot -p123456 mydb1 t_test1 t_test2> /aa.sql

  二、导入操作 

  1、明确文件

  查看导出的文件,发现只有同时导出多个数据库时,文件中才有创建数据库的语句。因此在无数据库的情况下需要手动创建数据库。

  2、导入示例

  1)方式一:登录到MySQL客户端,执行source命令(请先看下面的备注)

mysql> source /aa.sql;

  2)方式二:指定用户名、密码,使用小于号“<”(请先看下面的备注)

[root@localhost /]# mysql -uroot -p123456 mydb1 < /aa.sql

  备注:

  1)导出文件不是多库,文件中没有创建库语句,上述两种方式都要指定数据库。

  1.1)方式一使用use mydb1指定,否则文件内容会导入到当前use的库中。 

  1.2)方式二中命令写明mydb1,否则导入语句报错。

  如果没有需要导入的数据库,则需要手动先创建再执行上面的语句,如下:

create database mydb1;
use mydb1;
set names utf8;

  2)导出文件是多库,文件中有创建库语句,可以不指定数据库,自动创建数据库。

  2.1)方式一不用使用use mydb1,直接执行:mysql> source /aa.sql;

  2.2)方式二不载写库名,直接执行:mysql -uroot -p123456 < /aa.sql

  三、定时备份

  1、写脚本(后面会单独写一个详细的,本篇不是重点,不再写了)

#!/bin/bash
mysqldump -uroot -p123456 mydb1 > /var/mysql/backup/mydb1_$(date +%Y%m%d_%H%M%S).sql

  2、配置定时任务

crontab -e

  定时计划如下,每天晚上23:30备份。

30 23 * * * sh /usr/local/myshell/mysql/database_backup.sh

  定时任务相关知识,参考点击这里 

  

   

原文地址:https://www.cnblogs.com/javasl/p/13064086.html