Ubuntu 22.04容器中MSSQL的Prisma数据库URL应如何设置?
问题解答
我在Ubuntu 22.04上运行了名为'sql1'的SQL Server容器,可通过命令/opt/mssql-tools/bin/sqlcmd -S 127.0.0.1 -U SA -P ""进行查询。请问从Ubuntu Bash shell连接时,Prisma的数据库URL应该使用DATABASE_URL="sqlserver://sql1:1433;database=trinity;user=SA;password=;encrypt=true",还是标准格式DATABASE_URL="sqlserver://SA:@sql1:1433/trinity"?
结论
两种格式Prisma都支持,但需结合你的场景调整细节,更稳妥的是优先选择第一种ODBC风格格式,或对第二种URL格式补充必要参数:
1. 第一种ODBC风格格式的优势
- 明确指定了
encrypt=true:SQL Server容器默认要求加密连接,该参数可避免因加密配置缺失导致的连接失败 - 空密码写法更直观:直接通过
password=明确表示密码为空,不会出现解析歧义
2. 第二种URL格式的调整方案
原URL格式缺少加密参数,建议补充后使用:
DATABASE_URL="sqlserver://SA:@sql1:1433/trinity?encrypt=true"
这样既符合URL风格规范,又补上了连接必需的加密配置。
额外注意点
你当前用sqlcmd连接的是127.0.0.1,说明容器1433端口已映射到主机端口,也可以直接用127.0.0.1替代sql1,比如:
DATABASE_URL="sqlserver://127.0.0.1:1433;database=trinity;user=SA;password=;encrypt=true"
这种写法无需依赖容器名的DNS解析,连接稳定性更高。
内容的提问来源于stack exchange,提问作者user3545726
相关产品推荐
相关产品推荐

