<legend id='hrXFX'><style id='hrXFX'><dir id='hrXFX'><q id='hrXFX'></q></dir></style></legend>

  • <i id='hrXFX'><tr id='hrXFX'><dt id='hrXFX'><q id='hrXFX'><span id='hrXFX'><b id='hrXFX'><form id='hrXFX'><ins id='hrXFX'></ins><ul id='hrXFX'></ul><sub id='hrXFX'></sub></form><legend id='hrXFX'></legend><bdo id='hrXFX'><pre id='hrXFX'><center id='hrXFX'></center></pre></bdo></b><th id='hrXFX'></th></span></q></dt></tr></i><div id='hrXFX'><tfoot id='hrXFX'></tfoot><dl id='hrXFX'><fieldset id='hrXFX'></fieldset></dl></div>
  • <tfoot id='hrXFX'></tfoot>
  • <small id='hrXFX'></small><noframes id='hrXFX'>

      • <bdo id='hrXFX'></bdo><ul id='hrXFX'></ul>

      1. docker部署xxl-job-admin出现数据库拒绝问题及解决方法

        时间:2023-12-07
          <tbody id='TMkrB'></tbody>

            <small id='TMkrB'></small><noframes id='TMkrB'>

            <legend id='TMkrB'><style id='TMkrB'><dir id='TMkrB'><q id='TMkrB'></q></dir></style></legend>
              <tfoot id='TMkrB'></tfoot>
                <bdo id='TMkrB'></bdo><ul id='TMkrB'></ul>
              • <i id='TMkrB'><tr id='TMkrB'><dt id='TMkrB'><q id='TMkrB'><span id='TMkrB'><b id='TMkrB'><form id='TMkrB'><ins id='TMkrB'></ins><ul id='TMkrB'></ul><sub id='TMkrB'></sub></form><legend id='TMkrB'></legend><bdo id='TMkrB'><pre id='TMkrB'><center id='TMkrB'></center></pre></bdo></b><th id='TMkrB'></th></span></q></dt></tr></i><div id='TMkrB'><tfoot id='TMkrB'></tfoot><dl id='TMkrB'><fieldset id='TMkrB'></fieldset></dl></div>

                  首先我们需要了解什么是xxl-job-admin以及Docker。xxl-job-admin是一款轻量级分布式任务调度平台,可以实现任务的自动调度和执行管理等功能。Docker是一种容器化技术,可以快速构建、部署、升级应用,提高开发和生产的效率。

                  在使用Docker部署xxl-job-admin时,可能会出现数据库拒绝连接的问题,这是因为xxl-job-admin默认使用的是SQLite数据库,而Docker运行容器时默认会使用/tmp目录下的空间存储数据,而且容器运行结束后,该存储空间会被清空。因此,使用SQLite数据库时容易出现数据丢失的问题。

                  一种解决方法是使用Docker中的数据卷来存储SQLite数据库的数据。下面是具体的步骤:

                  1. 创建名为xxl_job_data的数据卷
                  docker volume create xxl_job_data
                  
                  1. 启动xxl-job-admin容器,并将数据卷挂载到容器的/data/xxl-job/db目录
                  docker run -d --name xxl-job-admin -p 8080:8080 -v xxl_job_data:/data/xxl-job/db xuxueli/xxl-job-admin:2.2.0
                  

                  通过上述步骤,我们成功解决了xxl-job-admin使用SQLite数据库时出现的数据丢失问题。

                  除了使用数据卷来解决数据库拒绝连接的问题外,还可以将数据库修改为MySQL,并修改xxl-job-admin的配置文件来连接MySQL数据库。下面是具体步骤:

                  1. 创建名为xxl_job_mysql的MySQL容器,并且创建名为xxl_job的数据库和名为xxl_job_user的用户,并授予其所有权限
                  docker run -d --name xxl_job_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=xxl_job -e MYSQL_USER=xxl_job_user -e MYSQL_PASSWORD=xxl_job_user_pwd mysql:5.7
                  docker exec -it xxl_job_mysql bash
                  mysql -uroot -p
                  CREATE USER 'xxl_job_user'@'%' IDENTIFIED BY 'xxl_job_user_pwd';
                  GRANT ALL PRIVILEGES ON xxl_job.* TO 'xxl_job_user'@'%';
                  FLUSH PRIVILEGES;
                  
                  1. 修改xxl-job-admin的配置文件。

                  将xxl-job-admin的配置文件(/data/xxl-job/job-admin/application.properties)中的数据库连接信息改为MySQL,同时根据实际情况修改username、password、url等参数。

                  ## spring datasource
                  spring.datasource.driver-class-name=com.mysql.jdbc.Driver
                  spring.datasource.url=jdbc:mysql://xxl_job_mysql:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true
                  spring.datasource.username=xxl_job_user
                  spring.datasource.password=xxl_job_user_pwd
                  
                  1. 启动xxl-job-admin容器。

                  将xxl_job_mysql容器的docker-compose.yml文件如下:

                  version: '3.1'
                  services:
                    xxl_job_mysql:
                      image: mysql:5.7
                      restart: always
                      environment:
                        MYSQL_ROOT_PASSWORD: root
                        MYSQL_DATABASE: xxl_job
                        MYSQL_USER: xxl_job_user
                        MYSQL_PASSWORD: xxl_job_user_pwd
                      ports:
                        - 3306:3306
                      volumes:
                        - xxl_job_mysql:/var/lib/mysql
                    xxl_job_admin:
                      image: xuxueli/xxl-job-admin:2.2.0
                      restart: always
                      ports:
                        - "8080:8080"
                      environment:
                        - PARAMS_SERVER_ADDRESS=http://127.0.0.1:7001
                        - PARAMS_ACCESS_TOKEN=xxl
                        - PARAMS_LOG_PATH=/data/applogs/xxl-job/jobhandler
                        - PARAMS_LOG_RETAIN_DAYS=3
                      volumes:
                        - xxl_job_data:/data/xxl-job/db
                        - ./logs:/data/applogs/xxl-job/jobhandler
                      depends_on:
                        - xxl_job_mysql
                  
                  volumes:
                    xxl_job_data:
                    xxl_job_mysql:
                  

                  通过上述步骤,我们成功将xxl-job-admin连接到了MySQL数据库,解决了使用SQLite时出现的数据丢失问题。

                  参考文献:
                  [1] https://www.jianshu.com/p/6fa079ebc46e
                  [2] https://github.com/xuxueli/xxl-job/blob/master/doc/doc_zh/Install.md

                  上一篇:Ruoyi从mysql切换到postgresql的几个踩坑实战 下一篇:CentOS7环境下MySQL8常用命令小结

                  相关文章

                  <legend id='NPFwo'><style id='NPFwo'><dir id='NPFwo'><q id='NPFwo'></q></dir></style></legend>
                      <bdo id='NPFwo'></bdo><ul id='NPFwo'></ul>
                    1. <tfoot id='NPFwo'></tfoot>

                      <small id='NPFwo'></small><noframes id='NPFwo'>

                    2. <i id='NPFwo'><tr id='NPFwo'><dt id='NPFwo'><q id='NPFwo'><span id='NPFwo'><b id='NPFwo'><form id='NPFwo'><ins id='NPFwo'></ins><ul id='NPFwo'></ul><sub id='NPFwo'></sub></form><legend id='NPFwo'></legend><bdo id='NPFwo'><pre id='NPFwo'><center id='NPFwo'></center></pre></bdo></b><th id='NPFwo'></th></span></q></dt></tr></i><div id='NPFwo'><tfoot id='NPFwo'></tfoot><dl id='NPFwo'><fieldset id='NPFwo'></fieldset></dl></div>