Docker版SQLServer使用

不管现实多么惨不忍睹,都要持之以恒地相信,这只是黎明前短暂的黑暗而已。不要惶恐眼前的难关迈不过去,不要担心此刻的付出没有回报,别再花时间等待天降好运。真诚做人,努力做事!你想要的,岁月都会给你。Docker版SQLServer使用,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

Docker版SQLServer使用

image-20221222135359000

参考指南

Docker 命令大全Docker 操作命令详解

https://learn.microsoft.com/zh-cn/sql/linux/sql-server-linux-docker-container-deployment?view=sql-server-ver16&pivots=cs1-bash

Docker镜像

https://hub.docker.com/_/microsoft-mssql-server?tab=description

基础操作

  • 查看docker使用情况:
docker ps -q | xargs docker stats --no-stream
  • 查看docker:
docker ps -a
  • 重启正在运行的容器:
docker restart 容器名称
  • 查看容器运行日志:
docker logs 容器名称
  • 查看docker的运行状态
systemctl status docker
  • 进入到Docker容器内部:
sudo docker exec -it containerID /bin/bash

示例操作

示例(进入FZ_UMC容器):

  1. 获取containerID:docker ps -q | xargs docker stats --no-stream(或者:docker ps)

  2. 进入到Docker容器:sudo docker exec -it bd8cb5215ebc /bin/bash

sudo docker exec -it ee1372d25cce /bin/bash

docker exec ee1372d25cce sed -i 's/TLSv1.2/TLSv1.0/g' /etc/ssl/openssl.cnf #修改TLS连接等级

cat /etc/ssl/openssl.cnf
  1. 使用命令行连接Docker里的SQL Server:sudo docker exec -it b633c89cb1be /bin/bash

  2. 使用docker exec命令登录到容器内部执行命令:/opt/mssql-tools/bin/sqlcmd -S localhost -U webuser -P "webuserXXX"

  3. 在容器内部执行命令,打开sqlcmd

打开sqlcmd之后我们就可以进行一些数据库的操作了,比如创建数据库,创建表,查询数据等。

CREATE DATABASE TEST_DB

GO

USE TEST_DB

GO

CREATE TABLE Table1 (ID INT, NAME NVARCHAR(50))

GO

Insert Into Table1 Values (0, 'agile')
  1. 查询以返回服务器上所有数据库的名称
SELECT Name from sys.Databases GO
select * from sysdatabases GO
  1. 开启docker里mssql-server的代理服务:
docker exec -it b633c89cb1be "bash"
root@b9a09ce17c02:/# /opt/mssql/bin/mssql-conf set sqlagent.enabled true

SQL Server needs to be restarted in order to apply this setting. Please run

'systemctl restart mssql-server.service'.




exit
docker stop b633c89cb1be

sql1

docker start b633c89cb1be

sql1

Docker里.NET5程序连接SQLSERVER 2008 R2 SP3时,数据库连接报以下错误的处理:

报错:System.Data.SqlClient.SqlException (0x80131904): A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: SSL Provider, error: 31 - Encryption(ssl/tls) handshake failed)

  • 原因:出现错误的原因为服务器默认使用的ssl为TLS1_2版本,而sqlserver需要的版本为TLSv1

  • 解决:

1.进入容器:

A.进入容器:docker exec -it ee1372d25cce /bin/bash

B.查看SSL版本:openssl version

2.查看 openssl.cnf 配置文件

A.打开配置文件并检查:cat /etc/ssl/openssl.cnf

B.文件末尾确保配置如下,如果不一致,则以下面为准,修改配置文件:

 [system_default_sect]

 MinProtocol = TLSv1

 CipherString = DEFAULT@SECLEVEL=1

C.修改完成以后重启:sshd sudo systemctl restart sshd

问题解决!

下载SSMS

下载地址https://learn.microsoft.com/zh-cn/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver16

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/160358.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!