MySQL 备份 还原

 

mysql备份的4种方式

https://www.cnblogs.com/gered/p/10410978.html

 

centos7安装Xtrabackup

https://www.cnblogs.com/51redhat/p/11995901.html

 

Navicat for MySQL 备份还原数据库

 

 

 

 

 备份好后,把文件拷贝到想要还原的服务器还原即可

 

二、备份还原

mysqlb

rem *******************************Code Start*****************************
@echo off

set "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"
D:\mysql5.7.21\bin\mysqldump -h localhost --port 端口号 --opt -u root --password=密码 数据库名 > D:\mysql5.7.21\Data\数据库名_%Ymd%.sql 
@echo on rem *******************************Code End*****************************

还原

D:\mysql5.7.21\bin\mysql -h localhost --port 端口号 -u root --password=密码 数据库名 < D:\mysql5.7.21\bin\AutoBackup2021j0304\数据库名_20210304.sql

还原报错:

错误提示:ERROR 2013 (HY000) at line 228: Lost connection to MySQL server during query

原因:mysql 服务未启动

错误提示:ERROR 1813 (HY000) at line 219: Tablespace '`数据库`.`表名`' exists

原因:是数据库文件夹下面有 表名.idb文件存在,但查询中又没有,删除此文件即可,注意不要搜索删除会提示被占用删除不了。

https://mp.weixin.qq.com/s/gUoDR4WLeHQYzyGtmR5K3w

 

Centos8中备份:

cd /
mkdir mysql57bak
cd mysql57bak

 

vi bkDatabaseName.sh

 

新建一个 bkDatabaseName.sh

#!/bin/bash
#根据 find / -iname 'mysqldump'  查询得到
DUMP='/usr/bin/mysqldump'
EXTRA_FILE='--defaults-extra-file=/etc/my.cnf'
BAKUP_DIR="/mysql57bak"
 
##bakup getgoodwebsite 数据库名
$DUMP $EXTRA_FILE getgoodwebsite > $BAKUP_DIR/getgoodwebsite_$(date +%y%m%d).sql
 
##remove history bakup files 30 days ago
find $BAKUP_DIR/ -name "getgoodwebsite_*.sql" -type f -mtime +30 -exec rm -rf {} \; > /dev/null 2>&1
echo "remove success"

 

chmod u+x bkDatabaseName.sh #赋执行权限

 

vi /etc/my.cnf

向my.cnf 添加配置

[mysqldump]
socket=/var/lib/mysql/mysql.sock
default-character-set=utf8mb4
host=127.0.0.1
user=[数据库用户名]
password='数据库用户密码'

 

sh bkDatabaseName.sh #手动测试一个

ll #查看备份文件是否有数据

成功后可就可以添加定时任务了

crontab -e
#加入下面内容
0 1 * * * /mysql57bak/bkDatabaseName.sh

保存后重启一下

systemctl reload crond
systemctl restart crond

systemctl status crond

 

posted @ 2020-07-11 22:52  三瑞  阅读(183)  评论(0编辑  收藏  举报