由于文章等内容的图片路径为绝对路径,所以在更换域名之后,可能会造成部分资源无法正常显示,所以需要去数据库全局替换一下域名。

连接到数据库

H2

登录到服务器,使用 vim 打开配置文件:

vim ~/.halo/application.yaml

修改内容如下:

  h2:
    console:
      settings:
        web-allow-others: true
      path: /h2-console
      enabled: true

也就是将 web-allow-othersenabled 字段改为 true。

改完之后重启 Halo。

接着访问 ip:端口/h2-console 即可登录到控制台,执行以下 SQL 语句即可。

默认的 url 为: jdbc:h2:file:~/.halo/db/halo,用户名和密码在你的 application.yaml 里面有。

UPDATE OPTIONS SET OPTION_VALUE  = replace(OPTION_VALUE , '旧域名','新域名') ;
UPDATE COMMENTS SET AUTHOR_URL  = replace(AUTHOR_URL , '旧域名','新域名') ;
UPDATE PHOTOS SET THUMBNAIL  = replace(THUMBNAIL , '旧域名','新域名') ;
UPDATE PHOTOS SET URL  = replace(URL , '旧域名','新域名') ;
UPDATE POSTS SET FORMAT_CONTENT  = replace(FORMAT_CONTENT , '旧域名','新域名') ;
UPDATE POSTS SET ORIGINAL_CONTENT = replace(ORIGINAL_CONTENT , '旧域名','新域名') ;
UPDATE POSTS SET THUMBNAIL = replace(THUMBNAIL, '旧域名','新域名') ;
UPDATE THEME_SETTINGS SET SETTING_VALUE = replace(SETTING_VALUE, '旧域名','新域名') ;

UPDATE CONTENTS SET CONTENT  = replace(CONTENT , '旧域名','新域名') ;
UPDATE CONTENTS SET ORIGINAL_CONTENT = replace(ORIGINAL_CONTENT , '旧域名','新域名') ;

MySQL

除了连接方式不同,其他一样。

    嵌入式数据库方便是方便, 但是管理不便, 后来想想还是购入了云数据库(mysql) , 让服务器和数据库内网访问! 速度也不错! 安全性也足够了!

      ChannD 当然,有条件可以上 MySQL。其实两者对于博客来讲,差别不大。

      1 个月 后

      为什么我的执行SQL语句后会报这个错
      Table "OPTIONS" not found; SQL statement:
      UPDATE OPTIONS SET OPTION_VALUE,我看了下数据库好像确实没有这几个表

        johnniang 我是主页无法加载图片和样式,按照作者的方法去修改H2数据库,结果SQL语句都没法执行

          johnniang 谢谢作者大大,不显示的问题已经解决了,但是有一个小问题就是仪表盘的地方点击文章还是找不到,但是在所有文章的详情页可以找到文章

            1 个月 后