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

是否用连接池

原文地址:https://www.cnblogs.com/rgyu/p/7535698.html