设为首页 加入收藏

TOP

阿里云CentOS自动备份MySql 8.0并上传至七牛云(一)
2019-09-03 00:38:51 】 浏览:56
Tags:阿里 CentOS 自动 备份 MySql 8.0 上传 牛云

本文主要介绍一下阿里云CentOS7下如何对MySql 8.0数据库进行自动备份,并使用.NET Core 将备份文件上传至七牛云存储上,并对整个过程所踩的坑加以记录.

环境、工具、准备工作

  • 服务器:阿里云64位CentOS 7.4.1708版本;并安装MySql 8.0 数据库(如何安装点击)
  • 客户端:Windows 10;
  • SFTP客户端:FileZilla;用来进行文件传输;
  • SSH工具:Putty;用来在Windows 上远程访问CentOS;

编写Shell脚本实现自动备份MySql数据库

1.创建相关目录

使用mkdir命令创建两个目录,一个用来存放Shell和上传七牛云的APP;命令如下

mkdir /home/software/mysql/backupapp      //此目录用来存放相关shell和应用程序
mkdir /home/software/mysql/backupfiles    //此目录用来存放mysql的备份文件

2.编写MySQL备份Shell

  •  使用命令进如shell存放的目录,命令如下:
    cd /home/software/mysql/backupapp
  • 创建备份的shell文件,命令如下:
    vi backup.sh //vi命令学习
  • 编写mysql备份shell命令,内容如下:
    db_user="dbuser" //输入你的数据库用户名 
    db_password="password" //输入你的数据库密码
    db_name="dbname" //输入你要备份的数据库名 mysqldump -u$db_user -p$db_password $db_name | gzip > /home/software/mysql/backupfiles/$(date +%Y%m%d%H%M%S).sql.gz
    //将导出的脚本按照年月日时分秒命名并压缩成gz文件,要保证/home/software/mysql/backupfiles存在,并注意脚本不能在windows环境下编写,注意脚本的空格与相关字符的全半角.
  • 测试脚本是否正常,命令如下:

    sh /home/software/mysql/backupapp/backup.sh 
    //没有错误信息或者提示 Using a password on the command line interface can be insecure 表示正常
    cd /home/software/mysql/backupfile //进入备份文件目录并使用ls命令查看是否备份成功
  • 设置shell的权限并设置可运行,命令如下:

    chmod 777 /home/software/mysql/backupapp/backup.sh    //chmod命令学习

3.设置crontab实现自动执行Shell备份数据库

  •  创建定时任务使备份脚本能定时运行,命令如下:
    crontab -e  //进入调度器编辑窗口
    //编写如下命令,此命令表示每天凌晨01:00分执行脚本backup.sh crontab命令学习
    0 1 * * * /home/software/mysql/backupapp/backup.sh
    //注意事项:保证/home/software/mysql/backupapp/backup.sh至少有读和可执行权限
    //为方便测试可设置10 * * * * 表示每10分钟执行一次shell
  • 重启crontab使命令生效,命令如下:
    systemctl restart crond

开发APP实现将数据库备份文件上传至七牛云

1.注册七牛云(已注册可忽略)

因为七牛云免费提供10G的对象存储空间,所以本文选择七牛云做远程备份.相关注册操作请跳转至七牛云并创建存储空间.

2.新建控制台应用程序编写代码实现上传功能

使用.NET Core创建一个Console应用程序,并使用NuGet安装Newtonsoft.json和Qiniu.Shared;上传功能代码如下:

using Microsoft.Extensions.Configuration;
using Qiniu.Common;
using Qiniu.Http;
using Qiniu.IO;
using Qiniu.IO.Model;
using Qiniu.Util;
using System;
using System.IO;
using System.Runtime.InteropServices;

namespace QiniuManagerApp
{
    internal class Program
    {
        private const string AccessKey = "";//设置七牛AccessKey
        private const string SecretKey = "";设置七牛SecretKey
        private const string Bucket = "";//设置你的Bucket,就是你新建的存储空间名称

        private static void Main(string[] args)
        {
            var systemPath = Environment.CurrentDirectory;
            if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
            {
                systemPath = Path.GetDirectoryName(typeof(Program).Assembly.Location);
            }
            var logPath = systemPath + @"/logs/";
&nb
首页 上一页 1 2 3 4 5 6 7 下一页 尾页 1/7/7
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Saltstack_使用指南06_远程执行-.. 下一篇zabbix服务快速搭建指南

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目