Dify_连接数据库

发布时间:2026/7/6 5:49:54
Dify_连接数据库 1. 在 Ubuntu 22.04 虚拟机里用 Docker 部署 Dify 和 MySQL 82. 目标让 Dify 的代码节点能够通过 PyMySQL 连接 MySQL 数据库一、安装并配置 MySQL 8 容器bash# 创建 MySQL 容器开启远程 root 访问% docker run -d \ --name mysql8 \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORDQw20010202! \ -e MYSQL_ROOT_HOST% \ -v mysql_data:/var/lib/mysql \ mysql:8.0 其中重点是那个权限一定要设置二、让 Dify 支持 PyMySQL添加 PyMySQL 依赖sandbox 会自动安装echo pymysql1.1.1 ~/dify/docker/volumes/sandbox/dependencies/python-requirements.txt允许 SSRF 代理访问 MySQL 端口 3306修改ssrf_proxy/squid.conf.template添加acl Safe_ports port 3306 # MySQL可使用 sed 命令sed -i /^acl Safe_ports port 80$/a\acl Safe_ports port 3306\t# MySQL ~/dify/docker/ssrf_proxy/squid.conf.template允许 sandbox 访问外部网络关键编辑docker-compose.yaml在sandbox服务的networks:部分增加- default使其能连接宿主机网络。sandbox: ... networks: - default # 新加这一行 - ssrf_proxy_network重启 Dify 使配置生效cd ~/dify/docker docker compose down docker compose up -d三、打通 MySQL 与 Dify 的网络将 MySQL 容器也接入 Dify 的默认网络使 sandbox 能通过容器名mysql8解析到 MySQL。docker network connect docker_default mysql8四、测试连接在 sandbox 容器内执行 Python 脚本验证 PyMySQL 能成功连接 MySQLdocker exec -it docker-sandbox-1 python3 -c import pymysql conn pymysql.connect(hostmysql8, port3306, userroot, passwordQw20010202!) print(连接成功) conn.close() 输出连接成功表示所有配置正确。