zoukankan      html  css  js  c++  java
  • 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

    是否用连接池

  • 相关阅读:
    如何用vue-cli4.0构建多页面模板脚手架!?本文实战教你
    最新ES6+中数组的拓展总结,面试必备
    2020最新Vue项目性能优化实战,80%的人都不会
    vue 运行环境安装与配置
    css 文本缩进+间距+溢出
    vue 生成二维码+截图
    vue 缓存界面
    webpack 4 入坑及爬坑记录
    移动端页面使用单位的问题:关于px、百分比、em、rem开发中逐渐转换的问题记录
    基于vuejs和element-ui的表单验证——循环表单和循环表格验证
  • 原文地址:https://www.cnblogs.com/rgyu/p/7535698.html
Copyright © 2011-2022 走看看