我尝试使用pymsql
连接到Azure中的数据库。我已成功连接到Azure中的其他数据库,但这个数据库看起来特别挑剔。
这是工作的T-SQL命令:
tsql -p 1433 -S server.database.windows.net -P 'password' -U username@server -D database_name
这是失败的pymsql连接调用:
pymssql.connect(server='server.database.windows.net',
port=1433,
user='username@server',
password='password',
database='database_name')
这是错误跟踪:
Traceback (most recent call last):
File "pymssql.pyx", line 635, in pymssql.connect (pymssql.c:10734)
File "_mssql.pyx", line 1902, in _mssql.connect (_mssql.c:21821)
File "_mssql.pyx", line 637, in _mssql.MSSQLConnection.__init__ (_mssql.c:6581)
File "_mssql.pyx", line 1630, in _mssql.maybe_raise_MSSQLDatabaseException (_mssql.c:17524)
_mssql.MSSQLDatabaseException: (20002, b'DB-Lib error message 20002, severity 9:\nAdaptive Server connection failed\n')
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "smallest.py", line 6, in <module>
database='database_name')
File "pymssql.pyx", line 641, in pymssql.connect (pymssql.c:10824)
pymssql.OperationalError: (20002, b'DB-Lib error message 20002, severity 9:\nAdaptive Server connection failed\n')
注意事项:
我被明确限制为database_name
,而tsql
命令将失败,错误代码20002
与pymsql
没有-D database_name
标志。这让我相信pymsql
可能没有正确传递,但我不确定如何检查这一点。
以下是由:
生成的转储 os.environ['TDSDUMPCONFIG'] = 'config'
os.environ['TDSDUMP'] = 'dump'
我相信上面的重要部分是这一行:
login.c:466:login packet rejected
似乎建议无效的凭据。
感谢任何帮助。
TDSDUMPCONFIG
:
log.c:196:Starting log file for FreeTDS 0.91 on 2018-03-23 18:31:34 with debug flags 0x4fff. config.c:185:Getting connection information for [server:1433]. config.c:189:Attempting to read conf files. config.c:354:... $FREETDSCONF not set. Trying $FREETDS/etc. config.c:367:... $FREETDS not set. Trying $HOME. config.c:293:Could not open '/home/ubuntu/.freetds.conf' ((.freetds.conf)). config.c:297:Found conf file '/etc/freetds/freetds.conf' (default). config.c:483:Looking for section global. config.c:540: Found section global. config.c:543:Got a match. config.c:565: tds version = '7.1' config.c:788:Setting tds version to 7.1 (0x701) from $TDSVER. config.c:565: text size = '64512' config.c:540: Found section egserver50. config.c:540: Found section egserver70. config.c:540: Found section server. config.c:554: Reached EOF config.c:483:Looking for section server:1433. config.c:540: Found section global. config.c:540: Found section egserver50. config.c:540: Found section egserver70. config.c:540: Found section server. config.c:554: Reached EOF config.c:303:[server:1433] not found. config.c:354:... $FREETDSCONF not set. Trying $FREETDS/etc. config.c:367:... $FREETDS not set. Trying $HOME. config.c:293:Could not open '/home/ubuntu/.freetds.conf' ((.freetds.conf)). config.c:297:Found conf file '/etc/freetds/freetds.conf' (default). config.c:483:Looking for section global. config.c:540: Found section global. config.c:543:Got a match. config.c:565: tds version = '7.1' config.c:788:Setting tds version to 7.1 (0x701) from $TDSVER. config.c:565: text size = '64512' config.c:540: Found section egserver50. config.c:540: Found section egserver70. config.c:540: Found section server. config.c:554: Reached EOF config.c:483:Looking for section server. config.c:540: Found section global. config.c:540: Found section egserver50. config.c:540: Found section egserver70. config.c:540: Found section server. config.c:543:Got a match. config.c:565: host = 'server.database.windows.net' config.c:595:Found host entry server.database.windows.net. config.c:599:IP addr is ser.ver.ip.add. config.c:565: port = '1433' config.c:565: tds version = '7.1' config.c:788:Setting tds version to 7.1 (0x701) from $TDSVER. config.c:554: Reached EOF config.c:301:Success: [server] defined in /etc/freetds/freetds.conf. config.c:714:Setting 'dump_file' to 'dump' from $TDSDUMP. config.c:650:tds_config_login: client_charset is UTF-8. config.c:655:tds_config_login: database_name is database_name. config.c:224:Final connection parameters: config.c:225: server_name = server:1433 config.c:226: server_host_name = server.database.windows.net config.c:227: ip_addr = ser.ver.ip.add config.c:228: instance_name = config.c:229: port = 1433 config.c:230: major_version = 7 config.c:231: minor_version = 1 config.c:232: block_size = 0 config.c:233: language = us_english config.c:234: server_charset = config.c:235: connect_timeout = 0 config.c:236: client_host_name = ubuntu-xenial config.c:237: client_charset = UTF-8 config.c:238: app_name = pymssql=2.1.3 config.c:239: user_name = config.c:242: library = DB-Library config.c:243: bulk_copy = 0 config.c:244: suppress_language = 0 config.c:245: encrypt level = 0 config.c:246: query_timeout = 0 config.c:249: database = database_name config.c:250: dump_file = dump config.c:251: debug_flags = 0 config.c:252: text_size = 64512 config.c:253: broken_dates = 0 config.c:254: emul_little_endian = 0 config.c:255: server_realm_name =
TDSDUMP
log.c:196:Starting log file for FreeTDS 0.91 on 2018-03-23 18:31:34 with debug flags 0x4fff. config.c:714:Setting 'dump_file' to 'dump' from $TDSDUMP. iconv.c:330:tds_iconv_open(0x2a88150, UTF-8) iconv.c:187:local name for ISO-8859-1 is ISO-8859-1 iconv.c:187:local name for UTF-8 is UTF-8 iconv.c:187:local name for UCS-2LE is UCS-2LE iconv.c:187:local name for UCS-2BE is UCS-2BE iconv.c:349:setting up conversions for client charset "UTF-8" iconv.c:351:preparing iconv for "UTF-8" "UCS-2LE" conversion iconv.c:391:preparing iconv for "ISO-8859-1" "UCS-2LE" conversion iconv.c:394:tds_iconv_open: done net.c:207:Connecting to 104.42.238.205 port 1433 (TDS version 7.1) net.c:272:tds_open_socket: connect(2) returned "Operation now in progress" net.c:312:tds_open_socket() succeeded util.c:156:Changed query state from DEAD to IDLE net.c:743:Sending packet *************************** BINARY DATA OMITTED net.c:557:Received header *************************** BINARY DATA OMITTED net.c:611:Received packet *************************** BINARY DATA OMITTED login.c:1057:detected flag 3 net.c:1259:GNUTLS: level 5: REC[0x2b43c30]: Allocating epoch #0 net.c:1259:GNUTLS: level 3: ASSERT: gnutls_constate.c:596 net.c:1259:GNUTLS: level 5: REC[0x2b43c30]: Allocating epoch #1 net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_ECDHE_ECDSA_AES_128_GCM_SHA256 (C0.2B) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_ECDHE_ECDSA_AES_256_GCM_SHA384 (C0.2C) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_ECDHE_ECDSA_CAMELLIA_128_GCM_SHA256 (C0.86) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_ECDHE_ECDSA_CAMELLIA_256_GCM_SHA384 (C0.87) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_ECDHE_ECDSA_AES_128_CBC_SHA1 (C0.09) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_ECDHE_ECDSA_AES_128_CBC_SHA256 (C0.23) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_ECDHE_ECDSA_AES_256_CBC_SHA1 (C0.0A) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_ECDHE_ECDSA_AES_256_CBC_SHA384 (C0.24) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_ECDHE_ECDSA_CAMELLIA_128_CBC_SHA256 (C0.72) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_ECDHE_ECDSA_CAMELLIA_256_CBC_SHA384 (C0.73) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_ECDHE_ECDSA_AES_128_CCM (C0.AC) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_ECDHE_ECDSA_AES_256_CCM (C0.AD) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_ECDHE_ECDSA_3DES_EDE_CBC_SHA1 (C0.08) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_ECDHE_RSA_AES_128_GCM_SHA256 (C0.2F) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_ECDHE_RSA_AES_256_GCM_SHA384 (C0.30) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_ECDHE_RSA_CAMELLIA_128_GCM_SHA256 (C0.8A) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_ECDHE_RSA_CAMELLIA_256_GCM_SHA384 (C0.8B) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_ECDHE_RSA_AES_128_CBC_SHA1 (C0.13) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_ECDHE_RSA_AES_128_CBC_SHA256 (C0.27) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_ECDHE_RSA_AES_256_CBC_SHA1 (C0.14) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_ECDHE_RSA_AES_256_CBC_SHA384 (C0.28) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_ECDHE_RSA_CAMELLIA_128_CBC_SHA256 (C0.76) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_ECDHE_RSA_CAMELLIA_256_CBC_SHA384 (C0.77) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_ECDHE_RSA_3DES_EDE_CBC_SHA1 (C0.12) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_RSA_AES_128_GCM_SHA256 (00.9C) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_RSA_AES_256_GCM_SHA384 (00.9D) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_RSA_CAMELLIA_128_GCM_SHA256 (C0.7A) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_RSA_CAMELLIA_256_GCM_SHA384 (C0.7B) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_RSA_AES_128_CBC_SHA1 (00.2F) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_RSA_AES_128_CBC_SHA256 (00.3C) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_RSA_AES_256_CBC_SHA1 (00.35) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_RSA_AES_256_CBC_SHA256 (00.3D) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_RSA_CAMELLIA_128_CBC_SHA1 (00.41) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_RSA_CAMELLIA_128_CBC_SHA256 (00.BA) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_RSA_CAMELLIA_256_CBC_SHA1 (00.84) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_RSA_CAMELLIA_256_CBC_SHA256 (00.C0) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_RSA_AES_128_CCM (C0.9C) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_RSA_AES_256_CCM (C0.9D) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_RSA_3DES_EDE_CBC_SHA1 (00.0A) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_DHE_RSA_AES_128_GCM_SHA256 (00.9E) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_DHE_RSA_AES_256_GCM_SHA384 (00.9F) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_DHE_RSA_CAMELLIA_128_GCM_SHA256 (C0.7C) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_DHE_RSA_CAMELLIA_256_GCM_SHA384 (C0.7D) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_DHE_RSA_AES_128_CBC_SHA1 (00.33) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_DHE_RSA_AES_128_CBC_SHA256 (00.67) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_DHE_RSA_AES_256_CBC_SHA1 (00.39) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_DHE_RSA_AES_256_CBC_SHA256 (00.6B) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_DHE_RSA_CAMELLIA_128_CBC_SHA1 (00.45) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_DHE_RSA_CAMELLIA_128_CBC_SHA256 (00.BE) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_DHE_RSA_CAMELLIA_256_CBC_SHA1 (00.88) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_DHE_RSA_CAMELLIA_256_CBC_SHA256 (00.C4) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_DHE_RSA_AES_128_CCM (C0.9E) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_DHE_RSA_AES_256_CCM (C0.9F) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Keeping ciphersuite: GNUTLS_DHE_RSA_3DES_EDE_CBC_SHA1 (00.16) net.c:1259:GNUTLS: level 4: EXT[0x2b43c30]: Sending extension STATUS REQUEST (5 bytes) net.c:1259:GNUTLS: level 4: EXT[0x2b43c30]: Sending extension SAFE RENEGOTIATION (1 bytes) net.c:1259:GNUTLS: level 4: EXT[0x2b43c30]: Sending extension SESSION TICKET (0 bytes) net.c:1259:GNUTLS: level 4: EXT[0x2b43c30]: Sending extension SUPPORTED ECC (12 bytes) net.c:1259:GNUTLS: level 4: EXT[0x2b43c30]: Sending extension SUPPORTED ECC POINT FORMATS (2 bytes) net.c:1259:GNUTLS: level 4: EXT[0x2b43c30]: sent signature algo (4.1) RSA-SHA256 net.c:1259:GNUTLS: level 4: EXT[0x2b43c30]: sent signature algo (4.3) ECDSA-SHA256 net.c:1259:GNUTLS: level 4: EXT[0x2b43c30]: sent signature algo (5.1) RSA-SHA384 net.c:1259:GNUTLS: level 4: EXT[0x2b43c30]: sent signature algo (5.3) ECDSA-SHA384 net.c:1259:GNUTLS: level 4: EXT[0x2b43c30]: sent signature algo (6.1) RSA-SHA512 net.c:1259:GNUTLS: level 4: EXT[0x2b43c30]: sent signature algo (6.3) ECDSA-SHA512 net.c:1259:GNUTLS: level 4: EXT[0x2b43c30]: sent signature algo (3.1) RSA-SHA224 net.c:1259:GNUTLS: level 4: EXT[0x2b43c30]: sent signature algo (3.3) ECDSA-SHA224 net.c:1259:GNUTLS: level 4: EXT[0x2b43c30]: sent signature algo (2.1) RSA-SHA1 net.c:1259:GNUTLS: level 4: EXT[0x2b43c30]: sent signature algo (2.3) ECDSA-SHA1 net.c:1259:GNUTLS: level 4: EXT[0x2b43c30]: Sending extension SIGNATURE ALGORITHMS (22 bytes) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: CLIENT HELLO was queued [219 bytes] net.c:1259:GNUTLS: level 11: HWRITE: enqueued [CLIENT HELLO] 219. Total 219 bytes. net.c:1259:GNUTLS: level 11: HWRITE FLUSH: 219 bytes in buffer. net.c:1259:GNUTLS: level 5: REC[0x2b43c30]: Preparing Packet Handshake(22) with length: 219 and min pad: 0 net.c:1259:GNUTLS: level 9: ENC[0x2b43c30]: cipher: NULL, MAC: MAC-NULL, Epoch: 0 net.c:1259:GNUTLS: level 11: WRITE: enqueued 224 bytes for 0x2a88150. Total 224 bytes. net.c:1259:GNUTLS: level 5: REC[0x2b43c30]: Sent Packet[1] Handshake(22) in epoch 0 and length: 224 net.c:1259:GNUTLS: level 11: HWRITE: wrote 1 bytes, 0 bytes left. net.c:1259:GNUTLS: level 11: WRITE FLUSH: 224 bytes in buffer. net.c:1242:in tds_push_func net.c:1259:GNUTLS: level 11: WRITE: wrote 224 bytes, 0 bytes left. net.c:1259:GNUTLS: level 3: ASSERT: gnutls_buffers.c:1154 net.c:1201:in tds_pull_func net.c:743:Sending packet *************************** BINARY DATA OMITTED net.c:1214:have 0 net.c:1218:before read net.c:557:Received header *************************** BINARY DATA OMITTED net.c:611:Received packet *************************** BINARY DATA OMITTED net.c:1221:after read net.c:1214:have 4088 net.c:1225:read 5 bytes net.c:1259:GNUTLS: level 10: READ: Got 5 bytes from 0x2a88150 net.c:1259:GNUTLS: level 10: READ: read 5 bytes from 0x2a88150 net.c:1259:GNUTLS: level 10: RB: Have 0 bytes into buffer. Adding 5 bytes. net.c:1259:GNUTLS: level 10: RB: Requested 5 bytes net.c:1259:GNUTLS: level 5: REC[0x2b43c30]: SSL 3.3 Handshake packet received. Epoch 0, length: 5788 net.c:1259:GNUTLS: level 5: REC[0x2b43c30]: Expected Packet Handshake(22) net.c:1259:GNUTLS: level 5: REC[0x2b43c30]: Received Packet Handshake(22) with length: 5788 net.c:1201:in tds_pull_func net.c:1214:have 4083 net.c:1225:read 4083 bytes net.c:1259:GNUTLS: level 10: READ: Got 4083 bytes from 0x2a88150 net.c:1201:in tds_pull_func net.c:1214:have 0 net.c:1218:before read net.c:557:Received header *************************** BINARY DATA OMITTED net.c:611:Received packet *************************** BINARY DATA OMITTED net.c:1221:after read net.c:1214:have 1705 net.c:1225:read 1705 bytes net.c:1259:GNUTLS: level 10: READ: Got 1705 bytes from 0x2a88150 net.c:1259:GNUTLS: level 10: READ: read 5788 bytes from 0x2a88150 net.c:1259:GNUTLS: level 10: RB: Have 5 bytes into buffer. Adding 5788 bytes. net.c:1259:GNUTLS: level 10: RB: Requested 5793 bytes net.c:1259:GNUTLS: level 5: REC[0x2b43c30]: Decrypted Packet[0] Handshake(22) with length: 5788 net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: SERVER HELLO (2) was received. Length 81[5784], frag offset 0, frag length: 81, sequence: 0 net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Server's version: 3.3 net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: SessionID length: 32 net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: SessionID: *************************** BINARY DATA OMITTED net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Selected cipher suite: ECDHE_RSA_AES_256_CBC_SHA384 net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Selected compression method: NULL (0) net.c:1259:GNUTLS: level 4: EXT[0x2b43c30]: Parsing extension 'STATUS REQUEST/5' (0 bytes) net.c:1259:GNUTLS: level 4: EXT[0x2b43c30]: Parsing extension 'SAFE RENEGOTIATION/65281' (1 bytes) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Safe renegotiation succeeded net.c:1259:GNUTLS: level 3: ASSERT: gnutls_buffers.c:1154 net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: CERTIFICATE (11) was received. Length 3523[5699], frag offset 0, frag length: 3523, sequence: 0 net.c:1259:GNUTLS: level 3: ASSERT: gnutls_buffers.c:1392 net.c:1259:GNUTLS: level 3: ASSERT: gnutls_buffers.c:1154 net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: CERTIFICATE STATUS (22) was received. Length 1835[2172], frag offset 0, frag length: 1835, sequence: 0 net.c:1259:GNUTLS: level 3: ASSERT: gnutls_buffers.c:1392 net.c:1259:GNUTLS: level 3: ASSERT: gnutls_buffers.c:1154 net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: SERVER KEY EXCHANGE (12) was received. Length 329[333], frag offset 0, frag length: 329, sequence: 0 net.c:1259:GNUTLS: level 3: ASSERT: gnutls_buffers.c:1392 net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Selected ECC curve SECP256R1 (2) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: verify handshake data: using RSA-SHA1 net.c:1259:GNUTLS: level 3: ASSERT: gnutls_buffers.c:1154 net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: SERVER HELLO DONE (14) was received. Length 0[0], frag offset 0, frag length: 1, sequence: 0 net.c:1259:GNUTLS: level 3: ASSERT: gnutls_buffers.c:1145 net.c:1259:GNUTLS: level 3: ASSERT: gnutls_buffers.c:1392 net.c:1259:GNUTLS: level 3: ASSERT: gnutls_buffers.c:1374 net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: CLIENT KEY EXCHANGE was queued [70 bytes] net.c:1259:GNUTLS: level 11: HWRITE: enqueued [CLIENT KEY EXCHANGE] 70. Total 70 bytes. net.c:1259:GNUTLS: level 11: HWRITE: enqueued [CHANGE CIPHER SPEC] 1. Total 71 bytes. net.c:1259:GNUTLS: level 4: REC[0x2b43c30]: Sent ChangeCipherSpec net.c:1259:GNUTLS: level 9: INT: PREMASTER SECRET[32]: *************************** BINARY DATA OMITTED net.c:1259:GNUTLS: level 9: INT: CLIENT RANDOM[32]: *************************** BINARY DATA OMITTED net.c:1259:GNUTLS: level 9: INT: SERVER RANDOM[32]: *************************** BINARY DATA OMITTED net.c:1259:GNUTLS: level 9: INT: MASTER SECRET: *************************** BINARY DATA OMITTED net.c:1259:GNUTLS: level 5: REC[0x2b43c30]: Initializing epoch #1 net.c:1259:GNUTLS: level 9: INT: KEY BLOCK[160]: *************************** BINARY DATA OMITTED net.c:1259:GNUTLS: level 9: INT: CLIENT WRITE KEY [32]: *************************** BINARY DATA OMITTED net.c:1259:GNUTLS: level 9: INT: SERVER WRITE KEY [32]: *************************** BINARY DATA OMITTED net.c:1259:GNUTLS: level 5: REC[0x2b43c30]: Epoch #1 ready net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Cipher Suite: ECDHE_RSA_AES_256_CBC_SHA384 net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Initializing internal [write] cipher sessions net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: recording tls-unique CB (send) net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: FINISHED was queued [16 bytes] net.c:1259:GNUTLS: level 11: HWRITE: enqueued [FINISHED] 16. Total 87 bytes. net.c:1259:GNUTLS: level 11: HWRITE FLUSH: 87 bytes in buffer. net.c:1259:GNUTLS: level 5: REC[0x2b43c30]: Preparing Packet Handshake(22) with length: 70 and min pad: 0 net.c:1259:GNUTLS: level 9: ENC[0x2b43c30]: cipher: NULL, MAC: MAC-NULL, Epoch: 0 net.c:1259:GNUTLS: level 11: WRITE: enqueued 75 bytes for 0x2a88150. Total 75 bytes. net.c:1259:GNUTLS: level 5: REC[0x2b43c30]: Sent Packet[2] Handshake(22) in epoch 0 and length: 75 net.c:1259:GNUTLS: level 11: HWRITE: wrote 1 bytes, 17 bytes left. net.c:1259:GNUTLS: level 5: REC[0x2b43c30]: Preparing Packet ChangeCipherSpec(20) with length: 1 and min pad: 0 net.c:1259:GNUTLS: level 9: ENC[0x2b43c30]: cipher: NULL, MAC: MAC-NULL, Epoch: 0 net.c:1259:GNUTLS: level 11: WRITE: enqueued 6 bytes for 0x2a88150. Total 81 bytes. net.c:1259:GNUTLS: level 5: REC[0x2b43c30]: Sent Packet[3] ChangeCipherSpec(20) in epoch 0 and length: 6 net.c:1259:GNUTLS: level 11: HWRITE: wrote 1 bytes, 16 bytes left. net.c:1259:GNUTLS: level 5: REC[0x2b43c30]: Preparing Packet Handshake(22) with length: 16 and min pad: 0 net.c:1259:GNUTLS: level 9: ENC[0x2b43c30]: cipher: AES-256-CBC, MAC: SHA384, Epoch: 1 net.c:1259:GNUTLS: level 11: WRITE: enqueued 101 bytes for 0x2a88150. Total 182 bytes. net.c:1259:GNUTLS: level 5: REC[0x2b43c30]: Sent Packet[1] Handshake(22) in epoch 1 and length: 101 net.c:1259:GNUTLS: level 11: HWRITE: wrote 1 bytes, 0 bytes left. net.c:1259:GNUTLS: level 11: WRITE FLUSH: 182 bytes in buffer. net.c:1242:in tds_push_func net.c:1242:in tds_push_func net.c:1242:in tds_push_func net.c:1259:GNUTLS: level 11: WRITE: wrote 182 bytes, 0 bytes left. net.c:1201:in tds_pull_func net.c:743:Sending packet *************************** BINARY DATA OMITTED net.c:1214:have 0 net.c:1218:before read net.c:557:Received header *************************** BINARY DATA OMITTED net.c:611:Received packet *************************** BINARY DATA OMITTED net.c:1221:after read net.c:1214:have 107 net.c:1225:read 5 bytes net.c:1259:GNUTLS: level 10: READ: Got 5 bytes from 0x2a88150 net.c:1259:GNUTLS: level 10: READ: read 5 bytes from 0x2a88150 net.c:1259:GNUTLS: level 10: RB: Have 0 bytes into buffer. Adding 5 bytes. net.c:1259:GNUTLS: level 10: RB: Requested 5 bytes net.c:1259:GNUTLS: level 5: REC[0x2b43c30]: SSL 3.3 ChangeCipherSpec packet received. Epoch 0, length: 1 net.c:1259:GNUTLS: level 5: REC[0x2b43c30]: Expected Packet ChangeCipherSpec(20) net.c:1259:GNUTLS: level 5: REC[0x2b43c30]: Received Packet ChangeCipherSpec(20) with length: 1 net.c:1201:in tds_pull_func net.c:1214:have 102 net.c:1225:read 1 bytes net.c:1259:GNUTLS: level 10: READ: Got 1 bytes from 0x2a88150 net.c:1259:GNUTLS: level 10: READ: read 1 bytes from 0x2a88150 net.c:1259:GNUTLS: level 10: RB: Have 5 bytes into buffer. Adding 1 bytes. net.c:1259:GNUTLS: level 10: RB: Requested 6 bytes net.c:1259:GNUTLS: level 5: REC[0x2b43c30]: Decrypted Packet[1] ChangeCipherSpec(20) with length: 1 net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: Cipher Suite: ECDHE_RSA_AES_256_CBC_SHA384 net.c:1259:GNUTLS: level 3: ASSERT: gnutls_buffers.c:1154 net.c:1201:in tds_pull_func net.c:1214:have 101 net.c:1225:read 5 bytes net.c:1259:GNUTLS: level 10: READ: Got 5 bytes from 0x2a88150 net.c:1259:GNUTLS: level 10: READ: read 5 bytes from 0x2a88150 net.c:1259:GNUTLS: level 10: RB: Have 0 bytes into buffer. Adding 5 bytes. net.c:1259:GNUTLS: level 10: RB: Requested 5 bytes net.c:1259:GNUTLS: level 5: REC[0x2b43c30]: SSL 3.3 Handshake packet received. Epoch 0, length: 96 net.c:1259:GNUTLS: level 5: REC[0x2b43c30]: Expected Packet Handshake(22) net.c:1259:GNUTLS: level 5: REC[0x2b43c30]: Received Packet Handshake(22) with length: 96 net.c:1201:in tds_pull_func net.c:1214:have 96 net.c:1225:read 96 bytes net.c:1259:GNUTLS: level 10: READ: Got 96 bytes from 0x2a88150 net.c:1259:GNUTLS: level 10: READ: read 96 bytes from 0x2a88150 net.c:1259:GNUTLS: level 10: RB: Have 5 bytes into buffer. Adding 96 bytes. net.c:1259:GNUTLS: level 10: RB: Requested 101 bytes net.c:1259:GNUTLS: level 5: REC[0x2b43c30]: Decrypted Packet[0] Handshake(22) with length: 16 net.c:1259:GNUTLS: level 4: HSK[0x2b43c30]: FINISHED (20) was received. Length 12[12], frag offset 0, frag length: 12, sequence: 0 net.c:1259:GNUTLS: level 5: REC[0x2b43c30]: Start of epoch cleanup net.c:1259:GNUTLS: level 5: REC[0x2b43c30]: Epoch #0 freed net.c:1259:GNUTLS: level 5: REC[0x2b43c30]: End of epoch cleanup net.c:1352:handshake succeeded!! gssapi.c:215:kerberos name MSSQLSvc/server.database.windows.net:1433 net.c:1259:GNUTLS: level 5: REC[0x2b43c30]: Start of epoch cleanup net.c:1259:GNUTLS: level 5: REC[0x2b43c30]: End of epoch cleanup net.c:1259:GNUTLS: level 5: REC[0x2b43c30]: Epoch #1 freed login.c:466:login packet rejected util.c:156:Changed query state from IDLE to DEAD util.c:331:tdserror(0x2ac2c80, 0x2a88150, 20002, 0) dblib.c:7929:dbperror(0x2b1cdc0, 20002, 0) dblib.c:7981:20002: "Adaptive Server connection failed" dblib.c:8002:"Adaptive Server connection failed", client returns 2 (INT_CANCEL) util.c:361:tdserror: client library returned TDS_INT_CANCEL(2) util.c:384:tdserror: returning TDS_INT_CANCEL(2) dblib.c:1443:dbclose(0x2b1cdc0) dblib.c:258:dblib_del_connection(0x7f9a5e238780, 0x2a88150) mem.c:615:tds_free_all_results() dblib.c:305:dblib_release_tds_ctx(1) dblib.c:5882:dbfreebuf(0x2b1cdc0) dblib.c:739:dbloginfree(0x2a9d450)
我的tsql
设置:
$ tsql -C
Compile-time settings (established with the "configure" script)
Version: freetds v0.91
freetds.conf directory: /etc/freetds
MS db-lib source compatibility: no
Sybase binary compatibility: yes
Thread safety: yes
iconv library: yes
TDS version: 7.1
iODBC: no
unixodbc: yes
SSPI "trusted" logins: no
Kerberos: yes
答案 0 :(得分:-1)
请改用pyodbc。
import pyodbc
server = 'your_server.database.windows.net'
database = 'your_database'
username = 'your_username'
password = 'your_password'
driver= '{ODBC Driver 13 for SQL Server}'
cnxn = pyodbc.connect('DRIVER='+driver+';PORT=1433;SERVER='+server+';PORT=1443;DATABASE='+database+';UID='+username+';PWD='+ password)
cursor = cnxn.cursor()
cursor.execute("SELECT TOP 20 pc.Name as CategoryName, p.name as ProductName FROM [SalesLT].[ProductCategory] pc JOIN [SalesLT].[Product] p ON pc.productcategoryid = p.productcategoryid")
row = cursor.fetchone()
while row:
print (str(row[0]) + " " + str(row[1]))
row = cursor.fetchone()
有关pyodbc的更多信息,请访问this网址。