首页 新闻 会员 周边

在VS中连接部署在docker中的SQLSERVER报错

0
悬赏园豆:50 [已解决问题] 解决于 2020-12-03 16:55

在docker中下载了mssql/server如图,运行也成功了

但是使用VS连接的时候报错了,这是什么情况?我在本地也有一个2008R2版本的sqlserver,是不是起冲突

godcloudy的主页 godcloudy | 初学一级 | 园豆:18
提问于:2020-11-30 18:55

刚才写错了,不是mysql,是sqlserver

百鸟朝凤 3年前
< >
分享
最佳答案
0

使用sqlserver的内置客户端可以直接测试下
具体的步骤参考如下的说明

服务器-docker 模式

docker run -itd --name mssql -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Mssql123!" -p 14330:1433 mcr.microsoft.com/mssql/server

指定HOST机器的14330端口服务,服务启动后可以看到的信息
$ docker ps
CONTAINER ID        IMAGE                            COMMAND                  CREATED             STATUS              PORTS                            NAMES
a637510ae80a        mcr.microsoft.com/mssql/server   "/opt/mssql/bin/perm…"   12 minutes ago      Up 12 minutes       0.0.0.0:14330->1433/tcp           mssql

可以看到如下的进程
$ sudo netstat -natp|grep 14330
tcp6       0      0 :::14330                 :::*                    LISTEN      18538/docker-proxy

客户端

https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-setup-tools?view=sql-server-2017
https://packages.microsoft.com/rhel/7.3/prod/mssql-tools-17.6.1.1-1.x86_64.rpm

https://packages.microsoft.com/ubuntu/16.04/prod/pool/main/m/mssql-tools/
https://packages.microsoft.com/ubuntu/16.04/prod/pool/main/m/msodbcsql17/

连接客户端输出如下信息就表示正常了
$ /opt/mssql-tools/bin/sqlcmd -U sa -P 'Mssql123!' -S localhost,14330 -V 25 -Q "select name from sys.databases; SELECT @@VERSION; "
name
--------------------
master
tempdb
model
msdb

(4 rows affected)
------------------------------------
Microsoft SQL Server 2019 (RTM-CU8) (KB4577194) - 15.0.4073.23 (X64)
        Sep 23 2020 16:03:08
        Copyright (C) 2019 Microsoft Corporation
        Developer Edition (64-bit) on Linux (Ubuntu 18.04.5 LTS) <X64>

(1 rows affected)
收获园豆:50
2012 | 高人七级 |园豆:21230 | 2020-12-02 14:27

感谢!

godcloudy | 园豆:18 (初学一级) | 2020-12-03 16:55
其他回答(1)
0

启动docker的时候,把映射端口改下 1433:1444 ,这样试试呢
本地连接docker上mysql的时候用1444端口

百鸟朝凤 | 园豆:260 (菜鸟二级) | 2020-12-01 08:47

嗯,我试了,但是问题变成了远程计算机拒绝网络连接,是防火墙没开吗

支持(0) 反对(0) godcloudy | 园豆:18 (初学一级) | 2020-12-01 10:09

@godcloudy: 不是防火墙, 是sqlserver不允许远程访问,docker 上的sqlserver 相当于另外的一台电脑,你是远程连接到它的sqlserver, 百度上有,你可以查一下,开启sqlserver 远程连接

支持(0) 反对(0) 百鸟朝凤 | 园豆:260 (菜鸟二级) | 2020-12-01 10:12

@百鸟朝凤:查到的只有在本地sqlserver管理工具配置,没有搜到有关解决远程连接docker中的sqlserver.....难受

支持(0) 反对(0) godcloudy | 园豆:18 (初学一级) | 2020-12-01 10:40

@godcloudy: 这个我还真不知道,我猜测应该是你登录进 docker里面,用本地登录,然后用命令的方法开启远程,具体这个命令是啥,我就不知道了

支持(0) 反对(0) 百鸟朝凤 | 园豆:260 (菜鸟二级) | 2020-12-01 10:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册