注意:
如果您使用的是帮助中心的一键环境配置,那么 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
echo -e [`date +"%Y-%m-%d %H:%M:%S"`] start
#system time
time=`date +"%y-%m-%d"`
#host IP
host="192.168.20.85"
#database backup user
user="root"
#database password
passwd="123456"
#Create a backup directory
mkdir -p /backup/db/"$time"
#list database name
all_database=`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,写入以下内容:
59 23* * * root sh /root/autobackup.sh >/dev/null 2>&1
保存退出,之后每天晚上 23:59 就会自动备份数据库了。
注意:备份会占用磁盘空间,及时清理不需要的数据或者扩展磁盘空间。