mysqldump -h主机名 -P端口 -u用户名 -p密码 参数1,参数2.... > 备份文件.sql
mysqldump -uroot -p1234 --all-databases > /root/db_back/all.sql
或
mysqldump -uroot -p1234 -A > /root/db_back/all.sql
mysqldump -uroot -p1234 -A --all-tablespaces > /root/db_back/all.sql
或
mysqldump -uroot -p1234 -A -Y > /root/db_back/all.sql
脚本当中下列参数需要修改为自己的
MYSQL_HOST=192.168.111.123 #数据库IP地址
MYSQL_USER=root #数据库账号
MYSQL_PASSWORD=123456 #数据库密码
TMPFILE=/tmp/db.txt
DBDIR="/opt/mysql/backup" #备份路径
之后会再DBDIR配置的路径当中生成两个文件,construct为表结构,data为数据

脚本如下
vim mysql_backup_data.sh
- #!/bin/bash
-
- MYSQL_HOST=192.168.111.123 #数据库IP地址
- MYSQL_USER=root #数据库账号
- MYSQL_PASSWORD=123456 #数据库密码
- TMPFILE=/tmp/db.txt
- DBDIR="/opt/mysql/backup" #备份路径
- DBPROFILE="test" #操作环境,无需变动
-
- #DATE_PREFIX=`date '+%Y/%m/%d/%H/%M'` # 会有多个目录结构
- DATE_PREFIX=`date '+%Y%m%d%H%M'`
- TMPCONSTUCTDIR=${DBDIR}/${DBPROFILE}/${DATE_PREFIX}/construct
- TMPDATADIR=${DBDIR}/${DBPROFILE}/${DATE_PREFIX}/data
- function autoCreateDb(){
- mysql -u${MYSQL_USER} -p${MYSQL_PASSWORD} --host=${MYSQL_HOST} -e "CREATE DATABASE IF NOT EXISTS $1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;"
- }
-
-
- function readDbFromFile(){
- length=0
- for line in `cat ${TMPFILE}`
- do
- len=${#line}
- #last=${line}
- tmp=${line}
- if [ "${tmp}" != "Database" ]&&[ "${tmp}" != "information_schema" ]&&[ "$tmp" != "mysql" ]&&[ "$tmp" != "performance_schema" ]&&[ "$tmp" != "sys" ] ; then
- #echo "${tmp}"
- dblist[${length}]=${tmp}
- length=$((${length}+1))
- fi
- done
- #dblist[${length}-1]=${last}
- }
-
- function exportdbconstruct(){
- mysqldump -u${MYSQL_USER} -p${MYSQL_PASSWORD} --host=${MYSQL_HOST} --skip-add-drop-table -d $1 --result-file=${TMPCONSTUCTDIR}/$1.sql
- }
-
- function exportdbdata(){
- mysqldump -u${MYSQL_USER} -p${MYSQL_PASSWORD} --host=${MYSQL_HOST} -t $1 --result-file=${TMPDATADIR}/$1.sql
- }
-
-
-
- function exportdbandconstructdata(){
- mysqldump -u${MYSQL_USER} -p${MYSQL_PASSWORD} --host=${MYSQL_HOST} --skip-add-drop-table $1 --result-file=${TMPDATADIR}/$1.sql
- }
-
- function showdbs(){
- mysql -u${MYSQL_USER} -p${MYSQL_PASSWORD} --host=${MYSQL_HOST} -e "show databases;">${TMPFILE}
- }
-
- showdbs
- readDbFromFile
- echo ${TMPCONSTUCTDIR}
- if [ ! -d ${TMPCONSTUCTDIR} ];then
- mkdir -p ${TMPCONSTUCTDIR}
- fi
- echo ${TMPDATADIR}
- if [ ! -d ${TMPDATADIR} ];then
- mkdir -p ${TMPDATADIR}
- fi
-
-
-
- for ((i=0; i<=${length}; i ++))
- do
- echo ${dblist[$i]}
- if [ "${dblist[$i]}" != "" ] ; then
- exportdbconstruct ${dblist[$i]}
- fi
-
- done
-
-
- for ((i=0; i<=${length}; i ++))
- do
- echo ${dblist[$i]}
- if [ "${dblist[$i]}" != "" ] ; then
- exportdbandconstructdata ${dblist[$i]}
- fi
-
- done
-
sh mysql_backup_data.sh