返回

Docker NocoDB连接主机MySQL,常见问题一网打尽!

mysql

## 使用 Docker 将 NocoDB 连接到主机上的 MySQL

在使用 Docker 设置 NocoDB 时,连接到运行在主机上的 MySQL 服务器是必不可少的。本指南将逐步指导你完成连接过程,解决常见问题,并提供深入的见解,帮助你充分利用 NocoDB 和 MySQL 的强大功能。

### 步骤

1. 修改 MySQL 配置

编辑 MySQL 配置文件(通常位于 /etc/mysql/my.cnf)并添加以下行:

bind-address = 0.0.0.0

这允许 MySQL 监听来自外部连接的请求。

2. 重启 MySQL

使用以下命令重启 MySQL:

sudo systemctl restart mysql

3. 创建 Docker 容器

使用以下 Docker 容器配置将 NocoDB 连接到 MySQL:

version: '3.7'

services:
  nocodb:
    image: nocodb/nocodb:latest
    ports:
      - "8080:8080"
    environment:
      - MYSQL_HOST=host.docker.internal
      - MYSQL_PORT=3306
      - MYSQL_USER=你的 MySQL 用户名
      - MYSQL_PASSWORD=你的 MySQL 密码
      - MYSQL_DATABASE=你的 MySQL 数据库
    volumes:
      - ./data:/data
    depends_on:
      - mysql

  mysql:
    image: mysql:latest
    volumes:
      - ./mysql-data:/var/lib/mysql

4. 构建并运行容器

运行以下命令构建并运行容器:

docker-compose up -d

### 故障排除

  • 防火墙设置: 确保防火墙允许连接到 MySQL 端口(通常为 3306)。
  • 自定义端口: 如果使用自定义端口,请在 NocoDB 环境变量中指定该端口。
  • 日志记录: 启用容器日志记录以进行故障排除。

### 常见问题解答

1. 连接仍然失败?

检查防火墙设置和 MySQL 配置文件是否正确。

2. 如何指定自定义 MySQL 端口?

在环境变量 MYSQL_PORT 中指定自定义端口,例如 MYSQL_PORT=3307

3. 如何启用日志记录?

docker-compose.yml 中添加 logging 部分。

4. 如何备份 NocoDB 数据?

挂载卷以持久化数据,并定期进行备份。

5. 如何更新 NocoDB?

使用 docker-compose pull 拉取最新映像并运行 docker-compose up -d