1. 程式人生 > >MYSQL連接字符串參數解析(解釋)

MYSQL連接字符串參數解析(解釋)

PE 都是 none use AR 字符 ignore utf8 initial

被迫轉到MySQL數據庫,發現讀取數據庫時,tinyint類型的值都被轉化為boolean了,這樣大於1的值都丟失,變成true了。查閱資料MySQL中無Boolean類型,都是存儲為tinyint了,這也無妨,但是讀回時不應該都變成boolean啊。網絡檢索沒有解決方案,準備向官方報告bug,細想官方不應該有這樣低級錯誤,先下載Connector/NET源碼研究一下,發現其中有TreatTinyAsBoolean這個屬性,檢索百度無結果,google有幾條英文的,看來大家都沒有註意到這點,或者說很少用.Net玩 MySQL的。

這樣將數據庫連接字符串變為這樣形式就一切正常了:
Database=dbname

;Data Source=192.168.1.1;Port=3306;User Id=root;Password=****;Charset=utf8;TreatTinyAsBoolean=false;

順便把源碼中涉及的所有屬性都列出來:
Server,host, data source, datasource, address, addr, network address: 數據庫位置(以上任何關鍵字均可)
Database,initial catalog:數據庫名
Port: socket 端口,默認 3306
ConnectionProtocol,protocol: 連接協議,默認 Sockets
PipeName,pipe: 連接管道,默認 MYSQL
UseCompression,compress: 連接是否壓縮,默認 false
AllowBatch: 是否允許一次執行多條SQL語句,默認 true
Logging: 是否啟用日誌,默認 false
SharedMemoryName:內存共享的名稱,默認 MYSQL
UseOldSyntax,old syntax, oldsyntax:是否兼容舊版的語法,默認 false
ConnectionTimeout,connection timeout:連接超時等待時間,默認15s
DefaultCommandTimeout,command timeout:MySqlCommand 超時時間,默認 30s
UserID, uid, username, user name, user:數據庫登錄帳號
Password,pwd: 登錄密碼
PersistSecurityInfo:是否保持敏感信息,默認 false
Encrypt:已經用 SSL 替代了,默認 false
CertificateFile:證書文件(.pfx)格式
CertificatePassword:證書的密碼
CertificateStoreLocation:證書的存儲位置
CertificateThumbprint:證書指紋
AllowZeroDateTime:日期時間能否為零,默認 false
ConvertZeroDateTime:為零的日期時間是否轉化為 DateTime.MinValue,默認 false
UseUsageAdvisor, usage advisor:是否啟用助手,會影響數據庫性能,默認 false
ProcedureCacheSize,procedure cache, procedurecache:同一時間能緩存幾條存儲過程,0為禁止,默認 25
UsePerformanceMonitor,userperfmon, perfmon:是否啟用性能監視,默認 false
IgnorePrepare: 是否忽略 Prepare() 調用,默認 true
UseProcedureBodies,procedure bodies:是否檢查存儲過程體、參數的有效性,默認 true
AutoEnlist: 是否自動使用活動的連接,默認 true
RespectBinaryFlags:是否響應列上元數據的二進制標誌,默認 true
TreatTinyAsBoolean:是否將 TINYINT(1) 列視為布爾型,默認 true
AllowUserVariables:是否允許 SQL 中出現用戶變量,默認 false
InteractiveSession,interactive:會話是否允許交互,默認 false
FunctionsReturnString:所有服務器函數是否按返回字符串處理,默認 false
UseAffectedRows:是否用受影響的行數替代查找到的行數來返回數據,默認 false
OldGuids: 是否將 binary(16) 列作為 Guids,默認 false
Keepalive: 保持 TCP 連接的秒數,默認0,不保持。
ConnectionLifeTime:連接被銷毀前在連接池中保持的最少時間(秒)。默認 0
Pooling: 是否使用線程池,默認 true
MinimumPoolSize, min pool size:線程池中允許的最少線程數,默認 0
MaximumPoolSize,max pool size:線程池中允許的最多線程數,默認 100
ConnectionReset:連接過期後是否自動復位,默認 false
CharacterSet, charset:向服務器請求連接所使用的字符集,默認:無
TreatBlobsAsUTF8:binary blobs 是否按 utf8 對待,默認 false
BlobAsUTF8IncludePattern:列的匹配模式,一旦匹配將按 utf8 處理,默認:無
SslMode: 是否啟用 SSL 連接模式,默認:MySqlSslMode.None

文章出處:http://home.3233567.cn/space.php?uid=182&do=blog&id=159

MYSQL連接字符串參數解析(解釋)