标签:dbdump dump -- mysql db 传输数据 file MySQL data
以下备份脚本可一键导出MySQL数据库数据,操作步骤如下(使用的是MySQL 5.7.21版本):
1、将脚本保存至~/bin/dbdump.sh
2、在Linux ~/.profile或者.bash_profile用户环境初始化文件中增加如下内容(环境变量内容视情况而定):
附:导出脚本如下,请复制并保存至~/bin/dbdump.sh
#!/usr/bin/env bash
### file name:dbdump.sh,save to ~/bin,and add $HOME/bin PATH to ~/.bash_profile or ~/.profile
### usage: dbdump.sh all or 1:with data,dbdump.sh none or 2:without data
####################################################################
## add these environment parameters to ~/.bash_profile or ~/.profile
# export ENV=数据库
# export db_host=数据库地址
# export db_port=数据库端口
# export db_user=数据库用户名
# export db_schema=数据库用户名
# export BACKUP_PATH=/data/docker/container/mysql/backup
# export PATH=$HOME/bin:$PATH
####################################################################
date=`date "+%Y%m%d"`
error_log=${ENV}_dbdump_error.log
mkdir -p $BACKUP_PATH
cd $BACKUP_PATH
exec_dump() {
echo
echo "-- ${ENV} `date +%F\ %T` Database ${db_schema} dump to ${dump_file} start ..."
if [ -f ${dump_file} ]; then
rm -f ${dump_file}
fi
if [ "v${no_data}" == "v" ]; then
echo "mysqldump --add-drop-table --set-gtid-purged=OFF -h ${db_host} -u ${db_user} -P ${db_port} -p -R ${db_schema} 2> ${error_log} | gzip > ${dump_file}"
mysqldump --add-drop-table --set-gtid-purged=OFF -h ${db_host} -u ${db_user} -P ${db_port} -p -R ${db_schema} 2> ${error_log} | gzip > ${dump_file}
else
echo "mysqldump ${no_data} --add-drop-table --set-gtid-purged=OFF -h ${db_host} -u ${db_user} -P ${db_port} -p -R ${db_schema} 2> ${error_log} | sed 's/AUTO_INCREMENT=[0-9]*\s*//g' | gzip > ${dump_file}"
mysqldump ${no_data} --add-drop-table --set-gtid-purged=OFF -h ${db_host} -u ${db_user} -P ${db_port} -p -R ${db_schema} 2> ${error_log} | sed 's/AUTO_INCREMENT=[0-9]*\s*//g' | gzip > ${dump_file}
fi
if [ -s ${error_log} ] ; then
rm -f ${dump_file}
cat ${error_log}
echo
echo "-- ${ENV} `date +%F\ %T` Database ${db_schema} dump error."
exit 1
else
rm -f ${link_file}
ln -s ${dump_file} ${link_file}
echo
echo "-- ${ENV} `date +%F\ %T` Database ${db_schema} dump to ${dump_file} finished ."
fi
}
exec_dump_without_data() {
no_data='--no-data'
exec_dump
}
if [ x$1 != x ]; then
dump_type=$1
else
read -p "
Which dump type do you want?
1> all (with data)
2> none structure only (no data)
Input dump type: [1|2] > " dump_type
fi
case ${dump_type} in
1|all)
link_file=${db_schema}_dump_with_data.sql.gz
dump_file=${date}_${link_file}
exec_dump
;;
2|none)
link_file=${db_schema}_dump_without_data.sql.gz
dump_file=${date}_${link_file}
exec_dump_without_data
;;
*)
echo "dump type error, nothing going to do."
exit 1
;;
esac
执行导出操作:
#导出数据库全部数据
dbdump.sh all
#导出数据结构(不包含数据)
dbdump.sh none
输入密码后数据库备份文件将导出至BACKUP_PATH目录中。
用dbdump.sh all 生成一个.gz数据压缩文件
sftp IP地址 连接到对应IP数据库服务器上,将gz压缩文件传输过去
gunzip *.gz文件 解压数据文件
如果默认存储目录容量不够
修改数据库数据存储目录
mysql -uroot -p 登录mysql
select @@datadir; 查看当前数据存储目录
sudo service mysqld stop
停止数据库服务
在内容空间充足的目录下 创建存储目录,例如:/data
cp /var/lib/mysql /data
vim /etc/my.cnf
[client]
port=3306
socket=/data/mysql/mysql.sock
[mysqld]
datadir=/data/mysql
socket=/data/mysql/mysql.sock
启动服务
sudo service mysqld start
再次登录mysql中 验证存储目录是否更改
更改成功后,在解压缩的sql目录下 执行这个命令
nohup mysql -u数据库账号 -p'数据库密码' 数据库 < *.sql &
ps -ef | grep mysql
查看数据库进程,会有进程在跑
标签:dbdump,dump,--,mysql,db,传输数据,file,MySQL,data 来源: https://blog.csdn.net/weixin_40953794/article/details/113194711
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。