discuzx3.5下备份mysql
[ 2024/05/09 21:38 | by admin ]
discuzx3.5的mysql采用了innodb数据引擎,数据库较大时,通过后台备份有些不方便。而使用主机时,也不能直接使用拷贝数据库的方式进行备份或迁移了。
主机采用了宝塔环境,使用它自带的mysql数据库备份,到新主机上恢复时发现只恢复了一小部分,故不使用bt自带的备份,重新添加一个mysqldump脚本进行备份(这里主要是指定字符集为utf8mb4,保留最近3天的备份,备份目录还是放在bt默认的备份目录内)。
操作如下:
点计划任务,添加任务:任务名称:备份数据库,代码:
#!/bin/bash
# This script will run at 01:00 everyday
rm -Rf /www/backup/database/mysql/dbname/dbname.$(date +%Y%m%d -d '2 days ago').tar.gz
/www/server/mysql/bin/mysqldump -u root -p[mysql root的密码] -c --default-character-set=utf8mb4 dbname | gzip> /www/backup/database/mysql/dbname/dbname.$(date -d "today" +"%Y%m%d").tar.gz
恢复时的命令方式为:
gunzip < dbname.tar.gz | mysql -hlocalhost -uroot -p[mysql root的密码] dbname --default-character-set=utf8mb4
主机采用了宝塔环境,使用它自带的mysql数据库备份,到新主机上恢复时发现只恢复了一小部分,故不使用bt自带的备份,重新添加一个mysqldump脚本进行备份(这里主要是指定字符集为utf8mb4,保留最近3天的备份,备份目录还是放在bt默认的备份目录内)。
操作如下:
点计划任务,添加任务:任务名称:备份数据库,代码:
#!/bin/bash
# This script will run at 01:00 everyday
rm -Rf /www/backup/database/mysql/dbname/dbname.$(date +%Y%m%d -d '2 days ago').tar.gz
/www/server/mysql/bin/mysqldump -u root -p[mysql root的密码] -c --default-character-set=utf8mb4 dbname | gzip> /www/backup/database/mysql/dbname/dbname.$(date -d "today" +"%Y%m%d").tar.gz
恢复时的命令方式为:
gunzip < dbname.tar.gz | mysql -hlocalhost -uroot -p[mysql root的密码] dbname --default-character-set=utf8mb4