MYSQL的幾種連接方法


MYSQL的幾種連接方法

 連接MySQL有下列幾種方法:針對不同的語言和不同的驅動:

 l  Connector/ODBC

l  Connector/Net

l  Connector/J

l  Connector/Python

l  Connector/C++

l  Connector/C

 一個最簡單的數據庫連接示例:使用Connector/Net

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using MySql.Data;

using MySql.Data.MySqlClient;

 

namespace MySQLConnect

{

    class Program

    {

        static void Main(string[] args)

        {

            MySqlConnection conn = new MySqlConnection();

            conn.ConnectionString = "Database=sakila;Host=localhost;Port=55944;User Id=us_rgyu;Password=Tongyun@2013007;charset=utf8;pooling=true;";

            conn.Open();

            MySqlCommand cmd = new MySqlCommand();

            cmd.Connection = conn;

            cmd.CommandText = "SELECT @@VERSION";

            string versionInfo = cmd.ExecuteScalar().ToString();

            Console.WriteLine("version=" + versionInfo);

        }

    }

}

 

連接的時候,最容易碰到下面兩種錯誤:

  1. Error Number=0:  Cannot connect to server
  2. Error Number=1045: Invalid user name and/or password

 

連接的時候,如果沒有指定字符集,那么缺省會用Latin1字符集。

MySQL的命令缺省值缺省為30秒。

 

每隔三分鍾,MySQL的客戶端和服務器端會運行作業,對於Pool內三分鍾之前Idle的連接進行移除。包括客戶端的端口資源的釋放,以及服務器端的端口資源和線程資源釋放。

 

連接字符串選項:

 

選項

缺省值

描述

AllowBatch

支持多個命令放在一起,用分號隔開。

AllowUserVariables

在SQL語句中有變量

AllowZeroDateTime

如開啟,MySqlDataReader.GetValue()返回一個零值

AutoEnlist

暫無多大用處

BlobAsUTF8ExcludePattern

NULL

不包含UTF8 的BLOB列的regular expression

BlobAsUTF8IncludePattern

NULL

包含UTF8 的BLOB列的regular expression

CertificateFile

NULL

證書文件

CertificatePassword

NULL

證書密碼

CertificateStoreLocation

NULL

證書位置

CertificateThumbprint

NULL

證書手印

CharSet

 

發送給服務器查詢的字符集。(返回結果的字符集依舊沿用服務器)

CheckParameters

TRUE

存儲過程的參數檢查

CommandInterceptors

 

解釋器集合

ConnectionTimeout

15

連接超時

Connect_Attrs

 

傳入連接屬性,如版本號,program_name等

ConvertZeroDateTime

False

當為真時,對於不允許的時間,會返回DateTime.MinValue

DefaultCommandTimeout

30

查詢超時時間

DefaultTableCacheAge

60

緩存時間

enableSessionExpireCallBack

False

暫無多大用處

UseSSL

False

使用SSL加密

ExceptionInterceptors

 

錯誤解釋器集合

FunctionsReturnString

False

暫無多大用處

Host,   Server, Data Source, Addr, Address, DataSource, Network Address

Localhost

連接的服務器名

IgnorePrepare

True

自動忽略MySqlCommand.Prepare()

Includesecurityasserts

False

暫無多大用處

Initial Catalog,database

Mysql

要連接的數據庫

Interactive

False

如果是真的話,那么客戶端則是interactive client,服務器上的wait_timeout則會起作用。

IntegratedSecurity

No

集成驗證

Keepalive

0

第一個TCP keepalive包發送之前的等待時間。0表示不用keepalive,以秒為單位

Logging

False

用於記錄Trace信息

oldGUIDs

False

GUID是從BINARY(16)改為CHAR(36),如為真,沿用BINARY(16)

useOldSyntax

False

暫無多大用處

Password,   pwd

 

密碼

PersistSecurityInfo

False

是否要顯示密碼信息。

PipeName

Mysql

使用Named Pipe進行連接

Port

3306

連接數據庫服務器的端口號

Procedurecache

25

缺省情況下,.NET保存最近25個的存儲過程的輸入輸出參數信息

Protocol

Socket

連接的協議,選項有TCP(SOCKET), PIPE, UNIX, MEMORY

Replication

False

是否連接的是Replication服務器

RespectBinaryFlags

True

尊重Column的binary   flags

SharedMemoryName

MYSQL

對於protocol為memory時有效

Sqlservermode

False

當為真時,課用[]來代替``,  對性能會有影響,不建議用

SSLMode

None

暫無多大用處

Tablecaching

False

暫無多大用處

TreatBlogsAsUTF8

False

暫無多大用處

TreatTinyAsBoolean

True

否則的話,TINYINT(1)會被視為INT

UseAffectedRows

False

暫無多大用處

UseProcedureBodies

True

存儲過程是可讀的,可幫助判定參數類型和順序

User ID,   UserID, UserName, Uid, User Name, User

 

登錄名

UseUsageAdvisor

False

暫無多大用處

UsePerformanceMonitor

False

要求在執行期間,性能計數器也相應更新

 

 

連接池相關的選項

選項

缺省值

描述

CachedServerProperties

False

SHOW   VARIABLES 是否會更新。缺省是每次更新的。

ConnectionLifeTime

0

如果超過指定時間,退回Pool里的連接是否要強制銷毀,對A10環境比較有用。0值表示最大值。

ConnectionReset

False

每次從Pool里獲得連接后,對連接狀態是否要重置。

MaximumPoolSize

100

Pool里的連接池大小

MinimumPoolSize

0

Pool里的最小連接個數

Pooling

True

是否用連接池


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM