专栏首页云计算教程系列如何创建MySQL的物理备份
原创

如何创建MySQL的物理备份

虽然mysqldump工具是数据库系统的首选备份方法,但它仅在数据库服务器可运行时才有效。如果无法启动数据库或无法访问主机系统,我建议直接复制数据库。

如果你对服务器系统可以正常访问,您可以参考使用mysqldump备份MySQL或MariaDB这篇文章。

注意 本教程需要一台已经设置好可以使用sudo命令的非root账号的服务器,并且已开启防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后在购买服务器

创建备份

首先,请停止mysql服务:

systemctl stop mysql

找到您的数据库目录。在大多数系统上它应该是/var/lib/mysql/,但如果该目录不存在,请检查/etc/mysql/my.cnf数据目录的路径。

创建用于存储备份的目录。本教程将使用/opt/backups,但您可以根据自己的需要进行更改:

mkdir /opt/db-backups

将MySQL的数据目录复制到存储位置。cp命令,rsync或其它方法将正常工作,但我们将使用tar递归复制并在同一时间gzip压缩的备份。根据需要更改数据库目录,备份文件名和目标目录; -$(date +%F)命令将插入一个时间戳到文件名。

tar cfvz /opt/db-backups/db-$(date +%F).tar.gz /var/lib/mysql/*

重启MySQL服务:

systemctl restart mysql

还原备份

  • 将您的工作目录更改为可以提取上面创建的tarball的位置。在此示例中使用当前用户的主目录:
cd
  • 停止mysql服务:
systemctl stop mysql
  • 将tarball解压缩到工作目录。将命令中的tarball文件名更改为要还原到日期的文件名。
tar zxvf /opt/db-backups/db-archive.tar.gz -C .
  • 如果您想保留它们,请将/ var / lib / mysql的当前内容移动到另一个位置,或者完全删除它们。 创建一个新的空mysql文件夹以恢复备份的DMBS。
mv /var/lib/mysql /var/lib/mysql-old
mkdir /var/lib/mysql
  • 将备份的数据库系统复制到空文件夹:
mv ~/var/lib/mysql/* /var/lib/mysql
  • 为刚恢复的文件设置适当的权限:
chown -R mysql:mysql /var/lib/mysql
  • 重启MySQL服务:
systemctl restart mysql

更多信息

有关此主题的其他信息,您可能需要参考以下资源。虽然提供这些是希望它们有用,但请注意,我们无法保证外部托管材料的准确性或及时性。

自建服务器难免会遇到这样的问题,但是如果您在生产环境使用,我还是建议您直接使用云关系型数据库,云关系型数据库让您在云中轻松部署、管理和扩展的关系型数据库,提供安全可靠、伸缩灵活的按需云数据库服务。腾讯云关系型数据库提供 MySQL、SQL Server、MariaDB、PostgreSQL 数据库引擎,并针对数据库引擎的性能进行了优化。云关系型数据库是一种高度可用的托管服务,提供容灾、备份、恢复、监控、迁移等数据库运维全套解决方案,可将您从耗时的数据库管理任务中解放出来,让您有更多时间专注于您的应用和业务。更多Linux教程请前往腾讯云+社区学习更多知识。


参考文献:《Create Physical Backups of your MariaDB or MySQL Databases》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何在Ubuntu 18.04上安装和使用PostgreSQL

    关系数据库管理系统是许多网站和应用程序的关键组件。它们提供了一种存储,组织和访问信息的结构化方法。

    藕丝空间
  • 使用Apache或Nginx加密Tomcat流量

    Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Serv...

    藕丝空间
  • 如何在Ubuntu 14.04上创建和使用MongoDB备份

    今天许多现代Web应用程序开发人员都选择在他们的项目中使用NoSQL数据库,而MongoDB通常是他们的首选。如果您在生产场景中使用MongoDB,则定期创建备...

    藕丝空间
  • MySQL添加用户、删除用户与授权

      mysql> insert into mysql.user(Host,User,Password) values("localhost","test",pa...

    Sindsun
  • CentOS下的Mysql的安装和使用

    1.使用安装命令 :yum -y install mysql mysql-server mysql-devel 安装完成却发现Myserver安装缺失,在网上找...

    庞小明
  • MySQL添加用户、删除用户与授权

    1.新建用户   1.1 登录MYSQL:   @>mysql -u root -p   @>密码   1.2 创建用户:   mysql> CREATE US...

    Java中文社群_老王
  • Can´t create table ´admin_table´ (errno: 13)错误解决

    今天将数据库导出,然后打算导入到虚拟机的数据库中,结果提示了Can´t create table ´photo´ (errno: 13) 。 然而当我正在郁闷的...

    苦咖啡
  • Linux下C语言操作MySQL

    MySQL是一个开源码的小型关系数据库管理系统,体积小,速度快,总体成本低,开源。MySQL有以下特性:

    程序手艺人
  • MYSQL安装之最新版MySQL手把手安装教程

    MySQL8.0.13 For Windows zip包下载地址:https://dev.mysql.com/downloads/file/?id=480557...

    测试小兵
  • C++ 连接数据库的入口和获取列数、数据

    这里不具体放出完整的程序,分享两个核心函数: 由于这里用到的函数是编译器自己的库所没有的,需要自己下载mysql.h库或者本地有数据库,可以去bin找到,放进去...

    林冠宏-指尖下的幽灵

扫码关注云+社区

领取腾讯云代金券