linux配置MySQL数据备份到腾讯云存储cos

官方文档https://cloud.tencent.com/document/product/436/63144
全程使用root管理员权限

  1. 安装coscli

    wget https://cosbrowser.cloud.tencent.com/software/coscli/coscli-linux && mv coscli-linux /usr/bin/coscli && chmod 755 /usr/bin/coscli

  2. 去腾讯云后台搞到key秘钥,且授权好全部所需权限

    https://console.cloud.tencent.com/cam/user/create?systemType=FastCreateV2

    https://console.cloud.tencent.com/cos/bucket

    image-20231020152820916

  3. 配置文件vim ~/.cos.yaml,如果不想使用配置或者直接写配置有问题的话,直接在命令行输入coscli然后回车,交互式处理初始化,基本上就是输入secretid、secretkey和桶名称和endpoint,endpoint是你该地区的地址,其他回车就行,不懂的看官网也应该明白

    配置文件版:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    cos:
    base:
    secretid: xxxxxxx
    secretkey: xxxxxx
    sessiontoken:
    protocol: https
    mode: ""
    cvmrolename: ""
    buckets:
    - name: mysql-back-xxxxxxxx
    alias: mysql-back-xxxxxxxx
    region: ""
    endpoint: cos.ap-singapore.myqcloud.com
    ofs: false
  4. 测试是否可用:coscli ls

    1
    2
    3
    4
    5
    6
    7
    8
    [root@ser087655429740 tmp]# coscli ls
    BUCKET NAME | REGION | CREATE DATE
    ------------------------+-----------------+-----------------------
    mysql-back-xxxxxxxx | ap-singapore | 2023-10-20T06:40:24Z
    ------------------------+-----------------+-----------------------
    TOTAL BUCKETS: | 1
    ------------------+-----------------------

  5. 配置mysqldump

    1
    2
    3
    4
    # 配置信息your_username和your_password
    echo -e "[client]\nuser=your_username\npassword=your_password" > ~/.my.cnf
    # 测试是否可以导出
    mysqldump aigpt > aigpt.sql
  6. 编写脚本

    vim /root/mysql_backup.sh

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    #!/bin/bash

    # 定义数据库名和桶名称的变量
    database_name="aigpt"
    bucket_name="mysql-back-xxxxxxxx"
    current_date=$(date_'+%Y%m%d')
    file_name="${database_name}.sql"

    # 切换到/root/目录
    cd /root/

    # 导出数据库到SQL文件
    mysqldump $database_name > $file_name

    # 压缩SQL文件
    tar -czf $file_name.tar.gz $file_name

    # 上传压缩后的文件到COS桶
    coscli cp $file_name.tar.gz cos://$bucket_name/back/$current_date/$file_name.tar.gz

    # 删除临时文件
    rm -f $file_name.tar.gz $file_name
  7. 设置定时

    chmod a+x /root/mysql_backup.sh给脚本添加运行权限

    运行crontab -e设置备份脚本每天运行一次:0 0 \* \* \* sh /root/mysqli_backup.sh > /dev/null 2>$1 &

  8. 设置生命周期 减少存储空间

    设置“基础配置/生命周期”中,设置备份过期时间。(这里设置,30天后,前缀为back的文件将会自动删除)

    image-20220305204654132.png