目录准备
mkdir -p /www/mariadb/data/mariadb
挂载初始化脚本
-- ./data/mysql_init/init.sql
CREATE DATABASE IF NOT EXISTS ghost_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE DATABASE IF NOT EXISTS forgejo_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE DATABASE IF NOT EXISTS kc_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 给用户授权(确保 ghost_user 可以访问这两个库)
GRANT ALL PRIVILEGES ON ghost_db.* TO 'ghost'@'%';
GRANT ALL PRIVILEGES ON forgejo_db.* TO 'ghost'@'%';
FLUSH PRIVILEGES;docker-compose.yml - 官方
services:
mariadb:
image: mariadb:12.2.2-noble
container_name: mariadb
restart: unless-stopped
environment:
- MARIADB_ROOT_PASSWORD=your_strong_root_password
- MARIADB_USER=ghost_user
- MARIADB_PASSWORD=ghost_password
volumes:
- ./data/mariadb:/var/lib/mysql
- ./data/mysql_init:/docker-entrypoint-initdb.d:ro
- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro
networks:
- ghost_net
networks:
ghost_net:
external: truedocker-compose.yml - alpine-mariadb
services:
mariadb:
image: alpine-mariadb:11.4.9
container_name: mariadb
restart: unless-stopped
environment:
- MARIADB_ROOT_PASSWORD=your_strong_root_password
- MARIADB_USER=ghost_user
- MARIADB_PASSWORD=ghost_password
volumes:
- ./data/mariadb:/var/lib/mysql
networks:
- ghost_net
networks:
ghost_net:
external: true