前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Halo站点全站备份及还原

Halo站点全站备份及还原

作者头像
云端之上
发布2024-03-12 11:28:38
1820
发布2024-03-12 11:28:38
举报
文章被收录于专栏:云端之上云端之上

操作环境:

操作系统:Linux CentOS 8.0

数据库:mysql 8.0

站点备份的目的:

1.提前为站点未来可能迁移服务器做好准备。

2.考虑到站点被入侵、攻击、销毁数据的可能,提前做好数据备份,出现问题可及时进行还原。

3.个人心态原因,重要数据和好东西不实实在在”拿“在自己手里不放心。

站点备份的思路:

站点设置、图片资源等数据:使用Halo自带备份还原功能。

站点数据库:由于本人使用的为mysql,故使用mysql本身的备份还原指令,将数据库导出为.sql文件后进行备份还原。

Halo配置文件:直接下载保存备份。

站点备份及还原的过程:

旧服务器备份:

1.备份Halo站点设置、图片资源等数据。后台使用Halo自带备份功能进行备份,得到一个.zip格式压缩包,该压缩包主要包含站点的设置、保存的图片、安装的插件等。

2.备份Halo配置文件。进入服务器,在“.halo2文件夹”内将Halo配置文件“application.yaml”下载保存,该配置文件主要作用为数据库及站点相关设置,具体代码如下:

注:.halo2文件夹”为隐藏文件夹,用于存放上传的图片、备份等文件。一般位于创建该文件夹及运行Halo站点时的用户所在目录下。例如创建该文件夹及运行Halo站点的用户为非root账户,则该配置文件的路径为/home/系统用户名/application.yaml。如创建该文件夹及运行Halo站点的用户为root账户,则该配置文件的路径为/root/.halo2/application.yaml。

代码语言:javascript
复制
server:
  port: 8090  #运行端口
spring:
  #数据库配置,支持 MySQL、MariaDB、PostgreSQL、H2 Database
  r2dbc:
    url: r2dbc:h2:file://${halo.work-dir}/db/halo-next?MODE=MySQL&DB_CLOSE_ON_EXIT=FALSE
    username: admin    #数据库账户
    password: 123456   #数据库密码
  sql:
    init:
      mode: always
      platform: h2     #数据库类型
halo:
  caches:
    page:
      disabled: true   #是否禁用页面缓存
  work-dir: ${user.home}/.halo2   #工作目录位置
  external-url: http://localhost:8090  #站点外部访问地址
  # 附件映射配置,通常用于迁移场景
  attachment:
    resource-mappings:
      - pathPattern: /upload/**
        locations:
          - migrate-from-1.x
#-------------以上为配置文件代码,以下为备注提示--------------
#spring.r2dbc.url	  数据库连接地址(指代码中r2dbc结构下需填写的参数,例如设置为mysql数据库则填入r2dbc:pool:mysql://你的服务器地址:3306/halodb(数据库名)
#spring.r2dbc.username	    数据库用户名
#spring.r2dbc.password	    数据库密码
#spring.sql.init.platform	    数据库平台名称,支持 postgresql、mysql、mariadb、h2,需要使用哪个数据库则填写对应的数据库名称参数
#PostgreSQL数据库设置标准:	
#r2dbc:pool:postgresql://{HOST}:{PORT}/{DATABASE}	  postgresql
#MySQL数据库设置标准:	
#r2dbc:pool:mysql://{HOST}:{PORT}/{DATABASE}	      mysql
#MariaDB数据库设置标准:	
#r2dbc:pool:mariadb://{HOST}:{PORT}/{DATABASE}	      mariadb
#H2 Database数据库设置标准:	
#r2dbc:h2:file:///${halo.work-dir}/db/halo-next?MODE=MySQL&DB_CLOSE_ON_EXIT=FALSE       h2

3.备份mysql数据库。进入服务器,执行mysql备份指令并将生成的sql文件保存。(需牢记数据库名,因为还原时需要先创建数据库,此时数据库名称必须保持一致)

代码语言:javascript
复制
mysqldump -uUser -pAdmin123 halodb > /var/www/halodb.sql
/*
mysqldump    -u数据库账号    -p数据库密码    数据库名   >   文件路径和文件名.sql
*/

服务器还原(假设该服务器已运行Halo站点,但旧服务器数据未迁移过来)

1、mysql放行3306端口外部访问。此时站点默认使用的数据库为h2数据库,假如你需要使用mysql数据库,则还需要进入服务器安装mysql,然后设置mysql放行3306端口外部访问:

代码语言:javascript
复制
/*使用mysql数据库管理账户登入mysql*/
mysql -u root -p
/*让MySQL 8.0对root账户开放外部访问3306端口。依次执行*/
create user user@'%' identified by '123';  /*此处user和123为你的数据库账户密码*/
grant all privileges on *.* to root@'%' with grant option;
FLUSH PRIVILEGES;

2.创建数据库。在mysql数据库中创建名为halodb的数据库:

代码语言:javascript
复制
/*#使用mysql数据库管理账户登入mysql*/
mysql -u root -p
/*创建数据库(数据库名需与备份数据库名一致)*/
create database halodb character set utf8mb4 collate utf8mb4_bin;    
/*halodb为要创建的数据库名*/

3、删除h2数据库文件。进入.halo2/db/目录下,如果存在”halo-next.mv.db“文件则删除该文件,该文件为Halo站点默认的h2数据库文件。

4.还原数据库。将备份的.sql文件上传至服务器(假设这里我将文件上传至/var/www/路径):

代码语言:javascript
复制
/*使用mysql数据库管理账户登入mysql*/
mysql -u root -p
/*切换到创建的数据库*/
USE halodb;   /*halodb为要创建的数据库名*/
/*执行数据库还原*/
SOURCE /var/www/halodb.sql;    /*路径+.sql文件名*/
/*还原成功的提示信息*/
/*
Query OK, 0 rows affected (0.00 sec)
Records: 241  Duplicates: 0  Warnings: 0
*/

5.还原Halo配置文件“application.yaml”。进入”.halo2文件夹“,将“application.yaml”替换为备份的“application.yaml”。

6.重新编译运行Halo站点。如果你是以.service服务开机自启动运行Halo站点,则执行以下代码进行重启服务:

代码语言:javascript
复制
#重启服务。因Halo项目编译运行较慢,还需等待1分钟左右(视服务器配置决定)
sudo systemctl restart halo.service     #halo.service为你的halo服务名

7.恢复Halo站点设置、图片资源数据及相关插件。进入Halo后台初始化,初始化完成后进入后台”概览“查看数据库是否成功切换为mysql,接着使用Halo自带的备份功能还原站点设置、图片资源数据及相关插件相关数据。至此,Halo站点已全部迁移还原完成。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-02-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 操作环境:
  • 站点备份的目的:
  • 站点备份的思路:
  • 站点备份及还原的过程:
    • 旧服务器备份:
      • 服务器还原(假设该服务器已运行Halo站点,但旧服务器数据未迁移过来):
      相关产品与服务
      数据库
      云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档