Articles of sql server

SYN很频繁地收到RST,ACK

Hi Socket编程专家, 我在Windows上运行SQL Server 2005/2008的Linux上编写代理服务器。 该代理使用bsd套接字编码,并在C中,它工作正常与下面描述的问题。 当我使用数据库客户机(用JAVA编写,并在Linux机器上运行)直接向数据库服务器发出查询(并发数为100或更多)时,不会遇到连接重置。 但通过我的代理,我正在经历许多连接重置。 深入挖掘我知道从“DB客户端”到“代理服务器”的连接总是成功的,但是当“代理服务器”试图连接到数据库服务器时,连接失败,因为SYN数据包获得了RST,ACK。 这是给一些背景。 问题是:为什么有时SYN会收到RST,ACK? DB client(linux) to Server(windows) —-> Works fine DB client(linux) to Proxy(Linux) to Server(windows) —–> problematic 我知道这可能发生在“连接被拒绝”的情况下,但这绝对不是那个。 SYN洪泛可能是另一种情况,但这并不能解释直接向服务器发起攻击时的良好行为。 我怀疑一些套接字选项设置可能是必需的,客户端连接之前,我的代理不。 请把这个点亮一下。 任何帮助(链接或指针)最受赞赏。 附加信息: 写一个并发连接的C客户端,它将并发作为参数。 这里是我的观察: – > 5000并发和以上,一些连接失败,连接被拒绝。 – > 2000年以下,它工作正常。 但是,即使在100个或更多的并发情况下,也会观察到实际的问题。 注意:问题是依赖于时间的,有时它永远不会出现,有时非常频繁,DB客户端(直接到服务器)在任何时候都可以正常工作。

SQLAlchemy,FreeTDS和MSSQL DBAPI错误:不支持47和-1数据types之间的转换

我在一台使用SQLAlchemy&FreeTDS访问MSSQL数据库的Ubuntu 14.04.3机器上创build了一些Python代码,并且工作起来非常完美。 当我将它部署到CentOS 6.6机器上时,完全相同的代码将失败: sqlalchemy.exc.DBAPIError: (Error) ('Layer: 2, Origin: 1\ncs_convert: cslib user api layer: external error: Conversion between 47 and -1 datatypes is not supported.' 我很难过 我已经检查过freetds.conf,odbc.ini和odbcinst.ini,相关条目是相同的。 Ubuntu机器:Python 2.7.6 Ubuntu机器:SQLAlchemy 0.8.4 CentOS机器:Python 2.7.9 :: Anaconda 2.2.0(64位) CentOS机器:SQLAlchemy 0.9.7 任何帮助将非常感激。 谢谢!

SQL Server Linux公共预览上的xp_cmdshell

我正在使用Linux上的SQL Server 2016的公共预览版。 我正在尝试运行xp_cmdshell并获取以下错误。 我怀疑它必须做的权限,但不知道如何解决这个问题。 我花了好几个小时寻找答案,但是似乎对Linux上的SQL Server几乎没有支持。 我正在使用pipe理员帐户运行此。 SQL Server安装在Ubuntu 16.4上(推荐)。 我使用运行在Windows 10上的Microsoft SQL Management Studio连接到它。 SQL代码: EXEC xp_cmdshell @SQLtext,no_output 错误信息: 消息15121,级别16,状态21,过程xp_cmdshell,行1 [批处理启动行159]在执行xp_cmdshell期间发生错误。 对“CreateProcess”的调用失败,错误代码为“2”。

SQL Server批量复制(bcp)for linux(centos)

FreeTDS是否支持SQL Server 2008 R2? 有没有其他的好工具从SQL Server中导入数据到我的centos机器上?

如何在Linux ubuntu 14.04上远程访问MS SQL Server

我将如何使用Ubuntu 14.04访问MS SQL Server。 我尝试使用freetds我不明白的过程,这是我第一次学习sqlmap。 我试图读几个小时,但徒劳无功。 只要给我一个线索的方式来进行。 我有数据库的IP地址,但我不知道如何读取它。

如何在Linux上的MS Sql Server中查看执行计划

我在Linux上安装了MS Sql Server。 它是从微软的回购安装,如下所述: https : //docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-ubuntu 在MySql中,我曾经在查询前写入EXPLAIN来查看执行计划。 在MS Sql Server中,它似乎不工作。 但我没有安装工作室程序,只有MS Sql和sqlcmd工具。 如何在Linux上的MS Sql Server中查看查询的执行计划?

“String data,right truncation”via ODBC but not via SQL Server Manager with the same query

我有一个服务器上的LAPP堆栈和另一个上运行的MSSQL。 前者通过微软的Linux驱动程序1.0 for Linux连接到后者,一般效果不错。 如果查询string太长,我们的一个search页面会失败,并显示以下错误: Couldn't execute statement: [unixODBC][Microsoft][SQL Server Native Client 11.0]String data, right truncation (SQL-22001) 但是,如果我复制查询,将其粘贴到连接到同一数据库的MS SQL Serverpipe理器查询窗口中,全部replace? 占位符正是我的脚本传递给$sth->execute() ,并运行它,它不会产生错误。 为什么是这样? (这是否表示ODBC驱动程序或SSM中的错误,或只是两者之间的差异?) 更好的是,或者我想我的最终目标是:我怎样才能让我的脚本像SSM一样行事呢? 目前我能看到的唯一的解决方法是遍历每一列(并且有很多,这是跨5个查询的联合,每个查询都有许多表连接),并找出每个varchar列的长度是什么,查询string可能每一个都太长了,然后用长度来区分所有的占位符。 即我必须做我自己的截断,并有另一个代码依赖 – 例如,当我们的数据库供应商决定加长列时,那么我必须去减less列出现在任何脚本中的截断。不能ODBC驱动程序“正常工作”SSM一样,没有抱怨? 如果我启用跟踪,我得到这些占位符之一: -dbd_bind_ph=rebind_param +rebind_param 7 '%aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa%' (size svCUR=43/SvLEN=48/max=0) svtype:8, value type:1, sql type:0 +get_param_type(7f22ca950e88,7) bind 7 '%aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa…' value_len=43 maxlen=47 null=0) bind 7 value_type:1 VARCHAR cs=20 dd=0 bl=43 […]

无法打开lib'/opt/microsoft/sqlncli/lib64/libsqlncli-11.0.so.1790.0':文件未find

我已经安装了Oracle Linux 6.5 64位,我想用ODBC连接MSSQL Server。 我已经安装了unixODBC,然后驱动程序pipe理器,我没有任何问题。 我在odbc.ini文件中创build了一个DNS,并且设置了我的odbcinst.ini 成功安装驱动程序经理后取得成功 [root@MV-OBI-LINUX sqlncli-11.0.1790.0]# odbcinst -q -d -n "SQL Server Native Client 11.0" [SQL Server Native Client 11.0] Description=Microsoft SQL Server ODBC Driver V1.0 for Linux Driver=/opt/microsoft/sqlncli/lib64/libsqlncli-11.0.so.1790.0 UsageCount=4 Threading=1 第一个错误 [root@MV-OBI-LINUX sqlncli-11.0.1790.0]# isql -v msPreflex userbd grup0r0c10 [01000][unixODBC][Driver Manager]Can't open lib '/opt/microsoft/sqlncli/lib64/libsqlncli-11.0.so.1790.0' : file not found [ISQL]ERROR: Could not […]

Linux Open Suse“pyodbc.Error :('01000',” 无法打开lib'SQL Server':文件未find(0)(SQLDriverConnect)“)”

我知道这个问题以前曾经问过,但我从来没有真正得到一个能够解决我的问题的正确答案。 我试图从一个Linux打开Suse12.4机器连接到Windows机器上的SQL服务器。 pyodbc.connect('DRIVER={SQL Server};SERVER=servername;DATABASE=dbname;UID=userid;PWD=password') 我得到的确切的错误是如下: pyodbc.Error:('01000',“[01000] [unixODBC] [驱动程序pipe理器]无法打开lib'SQL Server':找不到文件(0)(SQLDriverConnect)”) 下面是我的odbcinst.ini文件: [Easysoft ODBC-SQL Server] Driver=/usr/local/easysoft/sqlserver/lib/libessqlsrv.so Setup=/usr/local/easysoft/sqlserver/lib/libessqlsrvS.so Threading=0 FileUsage=1 DontDLClose=1 UsageCount=2 [Easysoft ODBC-SQL Server SSL] Driver=/usr/local/easysoft/sqlserver/lib/libessqlsrv_ssl.so Setup=/usr/local/easysoft/sqlserver/lib/libessqlsrvS.so Threading=0 FileUsage=1 DontDLClose=1 UsageCount=2

如何为SQL Server / Linux堆栈的python / pyodbc / unixODBC / MS ODBC驱动程序11设置数据库连接超时?

我一直无法find一个logging的方式来设置实际工作的初始连接超时。 我不是在询问“查询超时”,而是在数据库服务器完全closures或无法访问的情况下进行初始连接尝试的超时,并且根本没有响应。 默认情况下,这样的连接在255秒后显示超时 – 是否有一种方法来设置更短的超时? 编辑:为了清楚起见,我应该在这里重申堆栈: python pyodbc unixODBC(不是iODBC) 用于SQL Server的MS ODBC驱动程序11(不是FreeTDS) Linux的