问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Docker部署NocoDB:连接已有数据库或独立MySQL容器

创作时间:
作者:
@小白创作中心

Docker部署NocoDB:连接已有数据库或独立MySQL容器

引用
CSDN
1.
https://m.blog.csdn.net/hai4321/article/details/144772535

NocoDB是一个开源的无代码数据库管理工具,它允许用户通过图形界面轻松地管理和操作数据库。Docker则是一个开源的容器化平台,可以轻松地打包和运行应用程序。本文将介绍如何使用Docker部署NocoDB,并连接到现有的数据库或独立的MySQL容器。

使用已有数据库

创建本地数据库

在开始之前,需要创建一个本地数据库。以下是数据库的配置信息:

数据库:nocodb
用户:nocodb
密码:xxxxxx

修改docker-compose.yml

接下来,需要修改docker-compose.yml文件以连接到已有的数据库。默认情况下,Docker的网关IP地址是172.17.0.1(适用于bridge网络模式)。

version: "2.1"
services:
  nocodb:
    environment:
      # 更新数据库连接信息为宿主机的 MySQL
      NC_DB: "mysql2://172.17.0.1:3306?u=nocodb&p=xxxxxx&d=nocodb"
    image: "nocodb/nocodb:latest"
    ports:
- "28080:8080"
    restart: always
    volumes:
- "/opt/ai-server/nocodb_data:/usr/app/data"
volumes:
  nc_data: {}

启动镜像

使用以下命令启动Docker容器:

docker compose up -d

查看日志

如果遇到连接错误,可以通过查看日志来诊断问题:

docker ps
docker logs nocodb-nocodb-1

可能会看到类似以下的错误信息:

[Nest] 9 - 12/27/2024, 8:02:03 AM ERROR [ExceptionHandler] Error: Access denied for user ‘nocodb’@‘172.25.0.2’ (using password: YES)

给用户授权IP访问

为了解决访问权限问题,需要在MySQL中为用户授权:

mysql-5.7.14
mysql -h 127.0.0.1 -P 3306 -u root -p xxxxxxxx
GRANT ALL PRIVILEGES ON nocodb.* TO 'nocodb'@'172.25.0.2';
FLUSH PRIVILEGES;

等待nocodb自动重启

授权后,NocoDB会自动重启以应用新的配置。

访问

最后,可以通过以下URL访问NocoDB:

http://127.0.0.1:28080

使用独立的docker中新的mysql

配置 docker-compose.yml

如果选择使用独立的Docker MySQL容器,需要在docker-compose.yml中进行相应的配置:

version: "2.1"
services: 
  nocodb: 
    depends_on: 
      root_db: 
        condition: service_healthy
    environment: 
      NC_DB: "mysql2://root_db:3306?u=noco&p=password&d=root_db"
    image: "nocodb/nocodb:latest"
    ports: 
- "28080:8080"
    restart: always
    volumes: 
- "nc_data:/usr/app/data"
  root_db: 
    environment: 
      MYSQL_DATABASE: root_db
      MYSQL_PASSWORD: password
      MYSQL_ROOT_PASSWORD: password
      MYSQL_USER: noco
    healthcheck: 
      retries: 10
      test: 
- CMD
- mysqladmin
- ping
- "-h"
- localhost
      timeout: 20s
    image: "mysql:8.3.0"
    restart: always
    volumes: 
- "db_data:/var/lib/mysql"
volumes: 
  db_data: {}
  nc_data: {}

注意:在实际使用中,请确保修改敏感数据,如密码等。

启动

使用以下命令启动Docker容器:

docker compose up -d

访问

最后,可以通过以下URL访问NocoDB:

http://127.0.0.1:28080

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号