在整站的部署当中,除了操作系统的安装以外,服务环境后台支撑部分需要先把数据库先做了。这样其它服务如果有数据库环境需求就可以直接挂载使用了。

我选用的是通用性最强的 MySQL 作为数据库服务器。之前考虑过 MariaDB,顾及到和部署的应用的兼容问题等一系列原因,最终决定还是老老实实使用 MySQL 吧。

数据库使用 Docker Compose 进行部署,脚本如下:

services:
  
    #部署 MySQL 数据库容器
    db:
        image: mysql:debian
        # 根据个人喜好,选择合适的发布分支。
        container_name: MySQL
        # 部署后容器的名字。
        command: '--default-authentication-plugin=mysql_native_password'
        # 使用传统的密码验证方式,为了兼顾应用的兼容性。
        restart: always
        # 设置容器自动启动
        environment:
            MYSQL_ROOT_PASSWORD: <修改为 root 初始密码>
            # 设置数据库 root 用户的初始密码。
        volumes:
            - ./volume/database:/var/lib/mysql
            # 在 docker-compose.yml 文件当前目录的 volume 目录中存放所有数据库的数据文件。方便日后迁移或备份等操作。
        expose:
            - 3306
            - 33060

    # 部署 数据库管理应用容器
    adminer:
        image: adminer
        container_name: Adminer
        restart: always
        ports:
            - 8001:8080

以上文本保存为 docker-compose.yml 文件,上传到服务器合适的目录中去,我个人建议创建一个专门存放 compose 文件的目录,然后里面再创建以软件名命名的子目录。然后执行命令:docker compose up -d 来创建 MySQL 和 Adminer 两个容器。容器生成的同时,会向 volume 目录中写入数据库的所有基础数据,并且会创建名为:mysql-default 的网络。这也是其它应用所要加入的网络。以此可以和 MySQL 数据库进行本地通信。

至此,数据库的搭建部署就完成了,因为有 Adminer 可以进行数据的导入导出和增删改等操作,所以用命令行对数据库进行操作的方法就暂且不说了。等待之后部署其它项目的文章吧。先这么着……

Leave a reply

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> 

required