HimitZH / HOJ

⚡🔥Hcode Online Judge(HOJ)🔥⚡:基于SpringCloud与Vue前后端分离,分布式架构的在线测评平台OJ (An open source online judge system base on SpringBoot, Springcloud Alibaba and Vue.js !)
https://docs.hdoi.cn
MIT License
669 stars 147 forks source link

docker部署,如何使用自己的mysql容器 #34

Closed csthenry closed 1 year ago

csthenry commented 1 year ago

如题,自己已经有一个mysql容器,不想重复部署mysql

HimitZH commented 1 year ago

在已有的mysql容器中,创建数据库hoj和nacos,可以使用SQL脚本 ==> hoj.sqlnacos.sql,注意去掉nacos.sql最后两行的删除语句,然后修改.env文件里面的mysql的url、账号、密码的配置即可

HimitZH commented 1 year ago

nacos.sql 最后两行语句是删除nacos默认的账号密码

delete from users;

delete from roles;

没有执行这两句,那么nacos的账号密码就是默认的nacos和nacos,需要对应修改.env文件里面的nacos配置

csthenry commented 1 year ago

没有执行delete之前这两张表就是空的,并没有默认密码

csthenry commented 1 year ago

我知道了,我应该是没有使用hoj-mysql-checker这个容器,主要是不知道用自己的mysql容器,links部分应该怎么改

  hoj-mysql-checker:
    #仅支持amd64
    image: registry.cn-shenzhen.aliyuncs.com/hcode/hoj_database_checker
    #支持amd64、arm64
    #image: himitzh/hoj_database_checker
    container_name: hoj-mysql-checker
    links:
      - ?:mysql
    environment:
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-hoj123456}
csthenry commented 1 year ago

因为我创建的mysql容器没有开放root用户给业务,看了文档发现hoj-mysql-checker可自己打包,我先试试

HimitZH commented 1 year ago

但是nacos.sql这脚本里users和roles是空表呀

可以加下面这两个语句创建吧,记得修改提示

INSERT INTO users (username, password, enabled) VALUES ('改成你想设置的用户名', '改成你想设置的密码', TRUE); INSERT INTO roles (username, role) VALUES ('改成你想设置的用户名', 'ROLE_ADMIN');

csthenry commented 1 year ago

password是md5还是?

HimitZH commented 1 year ago

password是md5还是?

用bcrypt加密

HimitZH commented 1 year ago

可以看 hoj-mysql镜像构建的源文件https://github.com/HimitZH/HOJ-Deploy/tree/master/src/mysql 参考里面的go语言写的bcrypt

csthenry commented 1 year ago

好的好的

HimitZH commented 1 year ago

我知道了,我应该是没有使用hoj-mysql-checker这个容器,主要是不知道用自己的mysql容器,links部分应该怎么改

  hoj-mysql-checker:
    #仅支持amd64
    image: registry.cn-shenzhen.aliyuncs.com/hcode/hoj_database_checker
    #支持amd64、arm64
    #image: himitzh/hoj_database_checker
    container_name: hoj-mysql-checker
    links:
      - ?:mysql
    environment:
      - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-hoj123456}

这个镜像是用来检查和更新hoj数据库结构,执行的是hoj-update.sql,如果你用自己的mysql,这个容器可以去掉了,自己维护更新。

csthenry commented 1 year ago

明白,刚没有仔细看hoj-update.sql