赞片CMSSQL

chinaz
chinaz 初级会员超兽战士
发布于 2026-10-08 08:49 ·2 浏览 ·0 回复

学完这篇,你能在自己的服务器上用 Docker 把赞片 CMS 跑起来,并用 SQL 完成建库、建表、导入数据这一套基本操作。

赞片 CMS 是一套基于 PHP + MySQL 的内容管理系统,部署方式不复杂,坑主要集中在数据库连接和权限上。下面按顺序走一遍。

第一步:确认环境,装好 Docker 和 Docker Compose

这一步要做什么:把运行环境准备好,得到一台能跑容器的机器。

赞片 CMS 官方推荐用 Docker 部署,PHP 版本要求 7.4 及以上,MySQL 要求 5.7 或 8.0。先确认版本:

docker -v
docker compose version

如果提示 command not found,在 Ubuntu 22.04 上执行:

sudo apt update
sudo apt install -y docker.io docker-compose-plugin
sudo systemctl enable --now docker

装完后 docker -v 应输出类似 Docker version 24.0.7。把当前用户加进 docker 组,避免每条命令都加 sudo:

sudo usermod -aG docker $USER
newgrp docker

注意:newgrp 只对当前终端生效,其他已打开的终端要重新登录才认这个组。

第二步:拉取镜像并启动 MySQL 容器

这一步要做什么:起一个 MySQL 实例,得到可连接的数据库服务。

新建目录并进入:

mkdir -p /opt/zanpian && cd /opt/zanpian

创建 docker-compose.yml:

services:
  mysql:
    image: mysql:8.0
    container_name: zanpian-mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: Zanpian@2024
      MYSQL_DATABASE: zanpian
      MYSQL_USER: zanpian
      MYSQL_PASSWORD: Zanpian@2024
      TZ: Asia/Shanghai
    command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    ports:
      - "3306:3306"
    volumes:
      - ./mysql-data:/var/lib/mysql

启动:

docker compose up -d
docker compose ps

看到 zanpian-mysql 状态是 Up 就成功了。

注意:--default-authentication-plugin=mysql_native_password 这一行不能省。MySQL 8.0 默认用 caching_sha2_password,老的 PHP 数据库扩展连不上,会报 Authentication plugin 'caching_sha2_password' cannot be loaded。

第三步:建库建表

这一步要做什么:进容器执行 SQL,把库和表结构建好。

进入容器:

docker exec -it zanpian-mysql mysql -uroot -pZanpian@2024

建库(如果 compose 里已建可跳过):

CREATE DATABASE IF NOT EXISTS zanpian
  DEFAULT CHARACTER SET utf8mb4
  COLLATE utf8mb4_unicode_ci;
USE zanpian;

建一张基础内容表:

CREATE TABLE zp_vod (
  vod_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
  vod_name VARCHAR(255) NOT NULL DEFAULT '',
  vod_cid INT UNSIGNED NOT NULL DEFAULT 0,
  vod_content TEXT,
  vod_addtime INT UNSIGNED NOT NULL DEFAULT 0,
  PRIMARY KEY (vod_id),
  KEY idx_cid (vod_cid)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

字段类型要和 CMS 的模型定义对得上,vod_id 必须是主键自增,否则后台新增内容会失败。

第四步:导入数据并授权

这一步要做什么:把已有数据导进去,并给应用账号开权限。

如果官方给了 zanpian.sql,退出 mysql 后执行:

docker exec -i zanpian-mysql mysql -uroot -pZanpian@2024 zanpian < zanpian.sql

授权给应用账号:

GRANT ALL PRIVILEGES ON zanpian.* TO 'zanpian'@'%';
FLUSH PRIVILEGES;

验证:

SELECT COUNT(*) FROM zanpian.zp_vod;
SHOW GRANTS FOR 'zanpian'@'%';

注意:应用连的是 zanpian 这个账号,不是 root。授权里的主机名必须是 %,写成 localhost 的话,容器内其他服务连不上。

第五步:配置 CMS 的数据库连接

这一步要做什么:把连接信息写进 CMS 配置文件,让程序能读库。

找到 CMS 的配置文件,通常在 config/database.php 或 application/database.php,按实际版本为准,填入:

return [
    'type'     => 'mysql',
    'hostname' => 'zanpian-mysql',
    'database' => 'zanpian',
    'username' => 'zanpian',
    'password' => 'Zanpian@2024',
    'hostport' => '3306',
    'charset'  => 'utf8mb4',
];

如果 CMS 和数据库不在同一个 compose 网络里,hostname 要换成宿主机 IP,不能写 127.0.0.1。

改完重启应用容器:

docker restart zanpian-web

访问后台地址,能正常登录、列表能读出数据,就说明通了。

小结

  • 环境用 Docker 部署,MySQL 选 8.0,字符集统一 utf8mb4。
  • 必须加 --default-authentication-plugin=mysql_native_password,否则 PHP 连不上。
  • 建库建表时字段类型、主键自增要和 CMS 模型一致。
  • 应用账号授权主机写 %,配置文件里的 hostname 用容器名而非 127.0.0.1。
  • 数据量大时先导表结构再导数据,避免超时。
版权声明:本文来自 GJ站长论坛《赞片CMSSQL》
原文链接:https://www.gj0.com/thread-851.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。

全部回复 0

还没有回复,来抢沙发~