• Linux Mysql使用【mysqldump】备份数据库结构及数据


    1. 正常使用命令

    mysqldump -h主机名 -P端口 -u用户名 -p密码 参数1,参数2.... > 备份文件.sql

    2.导出全部到数据库, 包含数据及结构  –all-databases , -A

    mysqldump -uroot -p1234  --all-databases  > /root/db_back/all.sql

    mysqldump -uroot -p1234  -A  > /root/db_back/all.sql

    3.只导出表结构信息 –all-tablespaces , -Y

    mysqldump -uroot -p1234  -A --all-tablespaces > /root/db_back/all.sql


    mysqldump -uroot -p1234  -A -Y > /root/db_back/all.sql

    4, 封装脚本。使用此脚本,先备份数据库表结构, 再备份表数据

    脚本当中下列参数需要修改为自己的

    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

    1. #!/bin/bash
    2. MYSQL_HOST=192.168.111.123 #数据库IP地址
    3. MYSQL_USER=root #数据库账号
    4. MYSQL_PASSWORD=123456 #数据库密码
    5. TMPFILE=/tmp/db.txt
    6. DBDIR="/opt/mysql/backup" #备份路径
    7. DBPROFILE="test" #操作环境,无需变动
    8. #DATE_PREFIX=`date '+%Y/%m/%d/%H/%M'` # 会有多个目录结构
    9. DATE_PREFIX=`date '+%Y%m%d%H%M'`
    10. TMPCONSTUCTDIR=${DBDIR}/${DBPROFILE}/${DATE_PREFIX}/construct
    11. TMPDATADIR=${DBDIR}/${DBPROFILE}/${DATE_PREFIX}/data
    12. function autoCreateDb(){
    13. mysql -u${MYSQL_USER} -p${MYSQL_PASSWORD} --host=${MYSQL_HOST} -e "CREATE DATABASE IF NOT EXISTS $1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;"
    14. }
    15. function readDbFromFile(){
    16. length=0
    17. for line in `cat ${TMPFILE}`
    18. do
    19. len=${#line}
    20. #last=${line}
    21. tmp=${line}
    22. if [ "${tmp}" != "Database" ]&&[ "${tmp}" != "information_schema" ]&&[ "$tmp" != "mysql" ]&&[ "$tmp" != "performance_schema" ]&&[ "$tmp" != "sys" ] ; then
    23. #echo "${tmp}"
    24. dblist[${length}]=${tmp}
    25. length=$((${length}+1))
    26. fi
    27. done
    28. #dblist[${length}-1]=${last}
    29. }
    30. function exportdbconstruct(){
    31. mysqldump -u${MYSQL_USER} -p${MYSQL_PASSWORD} --host=${MYSQL_HOST} --skip-add-drop-table -d $1 --result-file=${TMPCONSTUCTDIR}/$1.sql
    32. }
    33. function exportdbdata(){
    34. mysqldump -u${MYSQL_USER} -p${MYSQL_PASSWORD} --host=${MYSQL_HOST} -t $1 --result-file=${TMPDATADIR}/$1.sql
    35. }
    36. function exportdbandconstructdata(){
    37. mysqldump -u${MYSQL_USER} -p${MYSQL_PASSWORD} --host=${MYSQL_HOST} --skip-add-drop-table $1 --result-file=${TMPDATADIR}/$1.sql
    38. }
    39. function showdbs(){
    40. mysql -u${MYSQL_USER} -p${MYSQL_PASSWORD} --host=${MYSQL_HOST} -e "show databases;">${TMPFILE}
    41. }
    42. showdbs
    43. readDbFromFile
    44. echo ${TMPCONSTUCTDIR}
    45. if [ ! -d ${TMPCONSTUCTDIR} ];then
    46. mkdir -p ${TMPCONSTUCTDIR}
    47. fi
    48. echo ${TMPDATADIR}
    49. if [ ! -d ${TMPDATADIR} ];then
    50. mkdir -p ${TMPDATADIR}
    51. fi
    52. for ((i=0; i<=${length}; i ++))
    53. do
    54. echo ${dblist[$i]}
    55. if [ "${dblist[$i]}" != "" ] ; then
    56. exportdbconstruct ${dblist[$i]}
    57. fi
    58. done
    59. for ((i=0; i<=${length}; i ++))
    60. do
    61. echo ${dblist[$i]}
    62. if [ "${dblist[$i]}" != "" ] ; then
    63. exportdbandconstructdata ${dblist[$i]}
    64. fi
    65. done

     

    执行脚本

    sh mysql_backup_data.sh

  • 相关阅读:
    如何制作含有图表数据的页面
    RHCE——实施高级存储功能(CSA)
    centos7安装WordPress
    Linux-进程管理
    使用lighttpd搭建轻量级web服务器详解
    AOF日志:宕机了,Redis如何避免数据丢失?
    BJFU|计算机网络缩写对照表
    asp.net学生成绩评估系统VS开发sqlserver数据库web结构c#编程计算机网页项目
    中国信息通信设备行业发展趋势及投资风险研究报告
    怎么提取一首歌的伴奏,强烈推荐这个方法~
  • 原文地址:https://blog.csdn.net/LiHaoHang6/article/details/126442541