备份mysql_备份MySQL

备份mysql

There are several ways to backup MySQL data, however, automation certainly makes the process easier. Insuring your backed up data is stored remotely further supports your business continuity in the event of a need to restore data onto new systems based on hardware failure, etc.

有多种备份MySQL数据的方法,但是,自动化无疑使该过程更容易。 如果需要根据硬件故障等将数据还原到新系统上,确保备份的数据可以远程存储进一步支持您的业务连续性。

Having spent some time murking through my network (not needing to reinvent the wheel to research an efficient backup procedure), I stumbled onto some backup scripts from PJ Doland.

花了一些时间在我的网络中苦思冥想(不需要重新发明轮子来研究有效的备份过程),我偶然发现了一些来自PJ Doland的备份脚本。

PJ (Patrick) is a web designer in the Washington DC area with former ties to the CATO Institute web site and was willing to share two scripts he is using. I liked these scripts as they are simple, and include the functionality to automate dropping the backups on a remote server for business continuity.

PJ(Patrick)是华盛顿特区的一名网页设计师,与CATO Institute网站有渊源,并愿意分享他正在使用的两个脚本。 我喜欢这些脚本,因为它们很简单,并且包含自动删除远程服务器上的备份以实现业务连续性的功能。

The first is for use as a standard MySQL backup and is found below:

第一个用作标准MySQL备份,位于以下位置:

#!/bin/bash

#!/bin/bash

##################################### ### MySQL Configuration Variables ### #####################################

###################################### MySQL配置变量### #### ################################

# MySQL Hostname DBHOST='localhost'

#MySQL主机名DBHOST ='localhost'

# MySQL Username DBUSER='root'

#MySQL用户名DBUSER ='root'

# MySQL Password DBPASSWD='password'

#MySQL密码DBPASSWD ='密码'

##################################### ### FTP Configuration Variables ##### #####################################

###################################### FTP配置变量##### ## ##################################

# FTP Hostname FTPHOST='www.example.com'

#FTP主机名FTPHOST ='www.example.com'

# FTP Username FTPUSER='username'

#FTP用户名FTPUSER ='用户名'

# FTP Password FTPPASSWD='password'

#FTP密码FTPPASSWD ='密码'

# Local Directory for Dump Files LOCALDIR=/path/to/local/directory/

#转储文件的本地目录LOCALDIR = / path / to / local / directory /

# Remote Directory for Offsite Backup REMOTEDIR=/path/to/remote/directory/

#异地备份的远程目录REMOTEDIR = / path / to / remote / directory /

# Prefix for offsite .tar file backup TARPREFIX=db1

#异地.tar文件备份的前缀TARPREFIX = db1

##################################### ### Edit Below If Necessary ######### #####################################

######################################如有必要,请在下面编辑###### ### ####################################

cd $LOCALDIR SUFFIX=`eval date +%y%m%d`

cd $ LOCALDIR SUFFIX =`评估日期+%y%m%d`

DBS=`mysql -u$DBUSER -p$DBPASSWD -h$DBHOST -e"show databases"`

DBS =`mysql -u $ DBUSER -p $ DBPASSWD -h $ DBHOST -e“显示数据库”

for DATABASE in $DBS do if [ $DATABASE != "Database" ]; then FILENAME=$SUFFIX-$DATABASE.gz mysqldump -u$DBUSER -p$DBPASSWD -h$DBHOST $DATABASE | gzip --best > $LOCALDIR$FILENAME fi done

对于$ DBS中的DATABASE,如果[$ DATABASE!=“ Database”]; 然后FILENAME = $ SUFFIX- $ DATABASE.gz mysqldump -u $ DBUSER -p $ DBPASSWD -h $ DBHOST $ DATABASE | gzip --best> $ LOCALDIR $ FILENAME文件已完成

chmod 400 $LOCALDIR*.gz

chmod 400 $ LOCALDIR * .gz

tar -cf $TARPREFIX-$SUFFIX.tar $SUFFIX-*.gz

tar -cf $ TARPREFIX- $ SUFFIX.tar $ SUFFIX-*。gz

ftp -n $FTPHOST

ftp -n $ FTPHOST

It is a straightforward script, uses mysqldump and tar/gzips the files prior to using ftp to move the data to a remote server. This script and the one below can easily be modified to use scp if you prefer running the transfer over ssh.

它是一个简单的脚本,在使用ftp将数据移至远程服务器之前,先使用mysqldump和tar / gzips文件。 如果您更喜欢通过ssh运行传输,则可以轻松地将此脚本以及下面的脚本修改为使用scp。

The second script is updated to use mysqlhotcopy and is specifically for use with ISAM/MYISAM tables only. This script below will NOT work with InnoDB tables.

第二个脚本已更新为使用mysqlhotcopy,并且专门用于ISAM / MYISAM表。 下面的脚本不适用于InnoDB表。

#!/bin/bash

#!/bin/bash

### Configuration Variables

###配置变量

DBHOST='localhost' DBUSER='root' DBPASSWD='password' FTPHOST='ftp.example.com' FTPUSER='username' FTPPASSWD='password' LOCALDIR=/path/to/local/ REMOTEDIR=/path/to/local/ TARPREFIX=db1

DBHOST ='本地主机'DBUSER ='root'DBPASSWD ='密码'FTPHOST ='ftp.example.com'FTPUSER ='用户名'FTPPASSWD ='密码'LOCALDIR = /路径/到/本地/ REMOTEDIR = /路径/到/本地/ TARPREFIX = db1

### Do not edit anything below this line

###不要在此行下方编辑任何内容

cd $LOCALDIR SUFFIX=`eval date +%y%m%d`

cd $ LOCALDIR SUFFIX =`评估日期+%y%m%d`

DBS=`mysql -u$DBUSER -p$DBPASSWD -h$DBHOST -e"show databases"`

DBS =`mysql -u $ DBUSER -p $ DBPASSWD -h $ DBHOST -e“显示数据库”

for DATABASE in $DBS do if [ $DATABASE != "Database" ]; then FILENAME=$SUFFIX-$DATABASE.tar.gz mysqlhotcopy -u $DBUSER -p $DBPASSWD $DATABASE $LOCALDIR tar -czf $LOCALDIR$FILENAME $LOCALDIR$DATABASE rm -rf $LOCALDIR$DATABASE rm -rf $LOCALDIR$DATABASE-replicate fi done

对于$ DBS中的DATABASE,如果[$ DATABASE!=“ Database”]; 然后FILENAME = $ SUFFIX- $ DATABASE.tar.gz mysqlhotcopy -u $ DBUSER -p $ DBPASSWD $ DATABASE $ LOCALDIR tar -czf $ LOCALDIR $ FILENAME $ LOCALDIR $ DATABASE rm -rf $ LOCALDIR $ DATABASE rm -rf $ LOCALDIR $ DATABASE -复制完成

chmod 400 $LOCALDIR*.tar.gz

chmod 400 $ LOCALDIR * .tar.gz

tar -cf $TARPREFIX-$SUFFIX.tar $SUFFIX-*.tar.gz

tar -cf $ TARPREFIX- $ SUFFIX.tar $ SUFFIX-*。tar.gz

ftp -n $FTPHOST

ftp -n $ FTPHOST

It is recommended to use 700 permissions on these shell scripts to limit them to root user as they do contain substantial information on user name, password, and path to multiple servers once they are updated with your information.

建议对这些shell脚本使用700个权限,以将它们限制为root用户,因为它们确实包含有关用户名,密码以及在更新了您的信息后到多个服务器的路径的大量信息。

They can then be added to cron to run on a schedule of your preference.

然后可以将它们添加到cron中,以按照您的首选时间表运行。

翻译自: https://www.sitepoint.com/backing-up-mysql/

备份mysql

### 回答1: 好的,以下是一个备份MySQL数据库的Shell脚本示例: ```bash #!/bin/bash # MySQL数据库备份脚本 # 设置备份文件名和目录 BACKUP_DIR="/var/backups/mysql" DATE=$(date +%Y-%m-%d_%H-%M-%S) DB_NAME="mydatabase" FILENAME="$BACKUP_DIR/$DB_NAME-$DATE.sql" # 设置MySQL登录信息 MYSQL_USER="root" MYSQL_PASSWORD="password" # 执行备份 mysqldump -u $MYSQL_USER -p$MYSQL_PASSWORD $DB_NAME > $FILENAME # 压缩备份文件 gzip $FILENAME # 删除7天前的备份文件 find $BACKUP_DIR -type f -name "*.gz" -mtime +7 -exec rm {} \; ``` 上述脚本将会备份名为 "mydatabase" 的MySQL数据库,并将备份文件保存在 "/var/backups/mysql" 目录下。脚本将创建一个新的备份文件名,格式为 "mydatabase-YYYY-MM-DD_HH-MM-SS.sql",其中 "YYYY-MM-DD_HH-MM-SS" 是当前日期和时间。备份完成后,脚本将使用 gzip 压缩备份文件,并删除7天前的备份文件。 请注意,为了安全起见,建议将MYSQL_USER和MYSQL_PASSWORD的值设置为有效的MySQL用户名和密码,而不是将其硬编码在脚本中。 ### 回答2: shell脚本备份MySQL数据库是一种自动化的数据库备份方式,它通过编写shell脚本来实现备份任务的执行。下面是一个简单的用于备份MySQL数据库的shell脚本示例: #!/bin/bash # 设置备份目录 BACKUP_DIR="/opt/backup/db" # 设置MySQL登录信息 DB_USER="root" DB_PASSWORD="yourpassword" # 设置备份文件名 BACKUP_FILE="db_backup_$(date +%Y%m%d%H%M%S).sql" # 创建备份目录 mkdir -p $BACKUP_DIR # 备份MySQL数据库到指定目录 mysqldump -u $DB_USER -p$DB_PASSWORD --all-databases > $BACKUP_DIR/$BACKUP_FILE # 判断备份是否成功 if [ $? -eq 0 ]; then echo "MySQL数据库备份成功,备份文件名为:$BACKUP_FILE" else echo "MySQL数据库备份失败" fi 在上述脚本中,首先定义了备份目录、MySQL登录信息和备份文件名的变量。然后,通过mkdir命令创建备份目录。接下来,使用mysqldump命令将MySQL数据库备份到指定目录,并将备份文件命名为当前日期和时间。最后,通过判断mysqldump命令执行的返回值来确定备份是否成功,并输出相应的提示信息。 使用该脚本进行MySQL数据库备份只需在终端中执行bash命令加上脚本路径即可,如:bash /path/to/backup_mysql.sh。执行完毕后,备份文件将保存在指定的备份目录中。 这种shell脚本备份MySQL数据库的方式可以自动化执行备份任务,提高工作效率,同时也方便了备份文件的管理和查找。 ### 回答3: shell脚本备份MySQL数据库是通过编写一个脚本文件来实现自动备份和恢复MySQL数据库的操作。下面是一个简单的示例: #!/bin/bash # Shell脚本备份MySQL数据库 # 定义备份存储目录和时间戳 backup_dir="/path/to/backup" timestamp=$(date +%Y%m%d%H%M%S) # 定义MySQL数据库的连接参数 db_user="root" db_password="password" db_host="localhost" db_name="database_name" # 创建备份目录 if [ ! -d "$backup_dir" ]; then mkdir -p $backup_dir fi # 使用mysqldump命令备份数据库 mysqldump -u$db_user -p$db_password -h$db_host $db_name > $backup_dir/${db_name}_${timestamp}.sql # 检查备份是否成功 if [ $? -eq 0 ]; then echo "数据库备份成功!" else echo "数据库备份失败!" fi # 清理过期备份(保留最新的N个备份) backup_count=$(ls -l $backup_dir | grep -c "^-" 2>/dev/null) if [ $backup_count -gt 10 ]; then oldest_backup=$(ls -tr $backup_dir | head -1) rm -f $backup_dir/$oldest_backup fi # 恢复MySQL数据库(如果需要) # mysql -u$db_user -p$db_password -h$db_host -e "DROP DATABASE $db_name;" # mysql -u$db_user -p$db_password -h$db_host -e "CREATE DATABASE $db_name;" # mysql -u$db_user -p$db_password -h$db_host $db_name < $backup_dir/latest.sql 这个脚本的功能是备份指定的MySQL数据库,将备份文件保存到指定的目录中,并可根据需要恢复数据库。脚本中使用了mysqldump命令来导出数据库,并使用mysql命令来恢复数据库备份文件保留最新的10个,超过数量的将自动删除最旧的备份文件。可以根据实际需求修改备份目录、数据库连接参数和保留备份数量等设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值