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