怎么备份远程mysql数据库的脚本文件

怎么备份远程mysql数据库的脚本文件,第1张

在MySQL中进行数据备份的方法有两种:

1. mysqlhotcopy

这个命令会在拷贝文件之前会把表锁住,并把数据同步到数据文件中,以避免拷贝到不完整的数据文件,是最安全快捷的备份方法。

命令的使用方法是:

mysqlhotcopy -u root -p<rootpass>db1 db2 … dbn <output_dir>

如果需要备份全部数据库,可以加上–regexp=”.*”参数。

Mysqlhotcopy命令可自动完成数据锁定工作,备份时不用关闭服务器。它还可以刷新日志,使备份文件和日志文件的检查点能保持同步。

2. mysqldump

这个命令是用来把数据库倒成sql文件的,是非常古老的命令了。

命令的使用方法是:

mysqldump -u root -p<rootpass>–hex-blob db1 >db1.sql

加上–hex-blob参数以后,blob数据会被类似BASE64的方法转换为文本来存储在sql文件中,就不会导致sql文件格式问题了。经过测试,通过这种方法备份的blob数据再重新恢复回去能够完全正确。

如果要备份所有的数据库,可以加上–all-databases参数。

用mysqldump命令还可直接把数据库转移到另外一台服务器上,不用生成备份文件。重复执行可定期更新远程数据库。

% mysqladmin -h remote_host create testdb

% mysqldump –opt testdb | mysql -h remote_host testdb

另外还可通过ssh远程调用服务器上的程序,如:

% ssh remote_host mysqladmin create testdb

#!/bin/bash

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin

export PATH

#数据库用户名

dbuser='root'

#数据库用密码

dbpasswd='********'

需要备份的数据库,多个数据库用空格分开

dbname='xiaohuai xiaohuai2'

#备份时间

backtime=`date +%Y%m%d%H%M%S`

#日志备份路径

logpath='/home/mysqlbak'

#数据备份路径

datapath='/home/mysqlbak'

#日志记录头部

echo ‘"备份时间为${backtime},备份数据库表 ${dbname} 开始" >>${logpath}/log.log

#正式备份数据库

for table in $dbnamedo

source=`mysqldump -u ${dbuser} -p${dbpasswd} ${table}>${logpath}/${backtime}.sql` 2>>${logpath}/mysqllog.log

1. 写个自动备份的脚本autobackup.sh,内容如下

#!/bin/bash

mysqldump -p databasename >mydata.sql

2. 更改其为可执行文件 chmod +x autobackup.sh

3. 通过crontab让系统自动运行这个脚本就好了,如crontab -e

0 0 * * * /路径到/autobackup.sh

第一个0表示分钟,第二个0表示0小时也就是零辰第三个*表示每天,第四个*表示每月,第五个*表示每周


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/6185214.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-17
下一篇2023-03-17

发表评论

登录后才能评论

评论列表(0条)

    保存