统一使用 Docker 安装
官网
如果你的机器上没有现成的 MySQL 可供使用,那么您可以选择使用 Docker 来运行 MySQL 和 Halo
创建 Docker 自定义桥接网络
docker network create halo-net
拉取 MySQL 镜像
docker pull mysql:8.0.27
创建 MySQL 数据目录
mkdir -p ~/.halo/mysql
启动 MySQL 实例
注意,这里需要添加一个属性 --privileged=true
否则无法挂载容器卷,权限不够
docker run --name halo-mysql --privileged=true \
-v ~/.halo/mysql:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root \
--net halo-net --restart=unless-stopped \
-d mysql:8.0.27
进入 MySQL 容器中登录 MySQL 并创建 Halo 需要的数据库
halo-mysql 为 MySQL 实例的容器名称
docker exec -it halo-mysql /bin/bash
登录 MySQL
mysql -uroot -p
输入 MySQL 数据库密码
创建数据库
create database halodb character set utf8mb4 collate utf8mb4_bin;
使用 exit退出MySQL 并退出容器
创建 Halo 工作目录
刚才在创建mysql时已经创建过了
mkdir ~/.halo && cd ~/.halo
下载示例配置文件到工作目录
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
编辑配置文件,配置数据库,其他配置请参考参考配置
vi application.yaml
注释 H2 database configuration.部分
启用 MySQL database configuration.部分
修改 datasource 下的 url 中的 ip 地址部分为容器名称并修改密码为您设定的 MySQL 密码
创建 Halo 容器实例
这里也需要添加一个属性,提高权限 --privileged=true 不添加容易在容器内部一只报错
docker run -it -d --name halo -p 8090:8090 --privileged=true \
-v ~/.halo:/root/.halo --net halo-net \
--restart=unless-stopped \
halohub/halo:1.5.3