sql - 无法连接到 Docker 上的 SQL 数据库
问题描述
我已经在上面配置了带有 db 的 docker
这是我下载sql的方法
docker pull microsoft/mssql-server-linux:2017-latest
然后我执行此命令
docker run -e "ACCEPT_EULA=Y" -e 'SA_PASSWORD=$cthulhu1988' -p 1433:1433 --name test -d microsoft/mssql-server-linux:2017-latest
然后我尝试通过此命令连接到它
docker exec -it test /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P '$cthulhu1988'
但我得到这个错误
**Sqlcmd: Error: Microsoft ODBC Driver 17 for SQL Server : Login failed for user 'SA'..**
更新
我制作ipconfig
并尝试使用我的 IPv4 地址执行此操作
docker exec -it test /opt/mssql-tools/bin/sqlcmd -S 10.0.75.1 -U SA -P '$cthulhu1988'
现在我有这个错误
Sqlcmd:错误:Microsoft ODBC Driver 17 for SQL Server:登录超时已过期。Sqlcmd:错误:Microsoft ODBC Driver 17 for SQL Server:TCP 提供程序:错误代码 0x102。Sqlcmd:错误:Microsoft ODBC Driver 17 for SQL Server:建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。检查实例名称是否正确以及 SQL Server 是否配置为允许远程连接。有关详细信息,请参阅 SQL Server 联机丛书。
我检查了,启用了 tcp\ip
我的错误在哪里?
解决方案
您的密码似乎不是问题。我连接得很好,无法重现问题。更改端口映射并重试:
docker run -e "ACCEPT_EULA=Y" -e 'SA_PASSWORD=$cthulhu1988' -p 1488:1433 --name test -d microsoft/mssql-server-linux:2017-latest
推荐阅读
- reactjs - 更改 nginx 中的 conf 以进行反应路由器
- javascript - 使 vanilla JS 手风琴自动关闭上一节
- asp.net-core - 如何在 .netcore 中关闭文件流
- google-play-console - Google Play 管理中心:单击查看服务条款时出现空白屏幕
- c# - 如何在运行时(UWP)更改 SystemAccentColor?
- react-native - react-native run-android 在新的初始化项目中失败
- testing - 使用单线程组中的多个模块控制器逐步执行多个测试片段
- assembly - MASM X86 装配程序中发生无限循环
- javascript - 反应虚拟列表可更新项目计数
- libvlc - 无法在 VLC 播放器的两个实例中播放视频流