暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL备份

DevOps架构实战 2021-01-08
312

MySQL 备份的导出


注意:


如果您使用的是帮助中心的一键环境配置,那么 MySQL 的安装目录是 alidata/server/mysql。

如果您将 MySQL 安装到其他目录,您需要输入您 MySQL 完整的安装路径。

单库备份您可以在服务器上执行如下命令:


/alidata/server/mysql/bin/mysqldump -uroot -p密码 数据库名 > 备份名称.sql 

mysqldump 默认不会导出事件表,执行此命令会出现警告 -- Warning: Skipping the data of table mysql.event. Specify the --events option explicitly.


如果您需要导出 MySQL 事件,您可以执行如下命令:


/alidata/server/mysql/bin/mysqldump -uroot -p密码 --events --ignore-table=mysql.event  数据库名 > 备份名称.sql 

 


MySQL 备份的导入


如果您需要导入备份的 .sql 文件,可以在 备份名称.sql 文件所在目录中执行如下命令:


/alidata/server/mysql/bin/mysql -uroot -p密码 mysql < 备份名称.sql

也可以通过执行如下命令:


/alidata/server/mysql/bin/mysql -uroot -p密码

mysql>use 数据库;   

mysql>source root/备份名称.sql; 

注意:/root/备份名称.sql 为实际备份文件绝对路径


二、用户可以使用如下脚本实现 MySQL 的定期自动备份。


1. 将以下脚本拷贝到本地,上传到服务器上,名称叫 “autoback.sh”


#!/bin/bash

#-----------------------------------------------#

#This is a  free GNU GPL version 3.0 or abover

#Copyright (C) 2008 06 05

#mysql_backup Dedicated copyright by My

#-----------------------------------------------#

echo -e [`date +"%Y-%m-%d %H:%M:%S"`] start

#system time

time=`date +"%y-%m-%d"`

#host IP

host="127.0.0.1"

#database backup user

user="root"

#database password

passwd="yourpasswd"

#Create a backup directory

mkdir -p backup/db/"$time"

#list database name

all_database=`/usr/bin/mysql -u$user -p$passwd -Bse 'show databases'`

#in the table from the database backup

for i in $all_database

do

/usr/bin/mysqldump -u$user -p$passwd $i > backup/db/"$time"/"$i"_"$time".sql

done

echo -e [`date +"%Y-%m-%d %H:%M:%S"`]  end

exit 0

脚本中的数据库名和数据库密码以用户需要备份的数据库信息为准,需要用户修改下。


2. 运行 crontab -e,写入以下内容:


30 5 * * * root sh /root/autobackup.sh >/dev/null 2>&1

保存退出,之后每天早上 5:30 就会自动备份数据库了。


注意:备份会占用磁盘空间,及时清理不需要的数据或者扩展磁盘空间。


文章转载自DevOps架构实战,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论