网站迁移

前言:数据丢失会导致我累计的所有东西都无了,数据的重要性不言而喻,做了一个博客网站,考虑到最不能接受的事情就是,服务商跑路,数据丢失等等都会对我的博客造成不可逆的影响,此文解决数据安全问题,出现问题也不怕,不要把希望寄托在别人身上。

我使用宝塔来配置环境,现已搭建好博客网站,再复刻一个同样的网站并利用自动化脚本进行网站的数据实时备份,实现两个相同的网站,当然这只是验证可行性,linux下一切皆文件,对于数据需要保存哪部分??接下来开始探究吧

环境配置

  • 复刻相同网站最好保证环境的一致,以下是现在的网站的环境,

image-20230916115933321

  • 接下来我们在备份的主机是同样的配置,各个版本最好保持一致

image-20230916120418988

  • 等待安装完成

image-20230916120449108

备份数据

  • 等待安装与此同时我们先把原网站进行打包(这里不包含数据库的数据)

网站数据

image-20230916121032453

数据库数据

  • 找到该目录下载数据库备份的数据

image-20230916121528186

  • 我们可以找到该目录查看

image-20230916124939654

  • 下载好的两个数据包如下,等会会用

image-20230916125155793

域名解析DNS

image-20230916125519363

  • 再ping一下

image-20230916125538222

添加站点

  • 等待环境安装好了之后添加站点

image-20230916130028315

  • 配置成功会弹出一下内容,将以上数据保存

image-20230916130105508

  • 打开站点目录里面有一些默认的文件(可能有的没有)

image-20230916130440319

  • 如果默认有index.html 这时可以访问了

image-20230916130515272

  • 接下来复刻网站了

image-20230916130921192

添加站点数据

  • 将网站文件上传至站点目录并解压

image-20230916131651380

image-20230916131900775

image-20230916131950387

image-20230916132109834

  • 至此站点文件添加完成了,我们访问以下

image-20230916132313698

  • 站点搜索到的数据库不存在,因为我们还没有添加数据库

添加数据库

image-20230916133852685

解压:

使用gunzip命令:

gunzip db_typecho_20230916_050301.sql.gz

导入.sql备份文件: 如果备份是一个.sql文件,可以使用以下命令导入它:

mysql -u [username] -p [database_name] < [backupfile.sql]

其中:

  • [username] 是MySQL的用户名。
  • [database_name] 是要导入数据的数据库名称。
  • [backupfile.sql] 是备份文件的路径。

会提示输入密码。输入正确的密码后,备份文件中的SQL命令将被执行,从而恢复数据。

username这里的用户名写  root

database_name写数据库名称 我们上面保存过  www_hdjvpn_top

备份文件的路径  /www/backup/database/gunzip db_typecho_20230916_050301.sql

所以我们这里应该执行的命令为

mysql -u root -p www_hdjvpn_top < /www/backup/database/db_typecho_20230916_050301.sql
  • 提示输入密码为数据库的root密码

image-20230916135029021

  • 当导入好了之后我们还是不能访问网站,需要更改一下Typecho的配置文件
/www/wwwroot/yourdomain.com/config.inc.php

打开该文件(原数据):

$db->addServer(array (
  'host' => 'localhost',           // 数据库服务器地址
  'port' => 3306,                 // 数据库连接端口
  'user' => 'root',               // 数据库用户名
  'password' => '6dffffffffffeb', // 数据库密码
  'charset' => 'utf8mb4',         // 数据库字符集
  'database' => 'typecho',        // 数据库名称
  'engine' => 'InnoDB',           // 数据库引擎
  'sslCa' => '',                  // SSL证书路径(如果使用SSL连接)
  'sslVerify' => true,            // 是否验证SSL连接
), \Typecho\Db::READ | \Typecho\Db::WRITE);

image-20230916142215002

更改之后就迁移完成了。

当然也可以将两个网站的数据库密码和数据库名称改为一致,这样就不用更改配置文件了,利用自动化脚本可更简单做到多个网站同步,我这里就只是迁移验证一下是否可行,所以没必要

总结:

linux下一切皆文件

网站迁移需保证 站点数据 完整与 数据库信息 完整,迁移过程中站点配置文件包含了数据库配置信息,备份的数据库导入之后需更改此文件

如果觉得我的文章对你有用,请随意赞赏