MySQL 连接器/ODBC 发行说明  / MySQL 连接器/ODBC 版本 5.2 中的更改  /  MySQL Connector/NET 5.2.8 中的更改(未发布)

MySQL Connector/NET 5.2.8 中的更改(未发布)

修正错误

  • 如果MySqlConnection.GetSchema在名为b`a`d的表上调用“索引” ,如下所示:

    DataTable schemaPrimaryKeys = connection.GetSchema(
      "Indexes",
      new string[] { null, schemaName, "b`a`d"});

    然后产生了以下异常:

    You have an error in your SQL syntax; check the manual that corresponds to
    your MySQL server version for the right syntax to use near 'a`d`' at line 1

    (漏洞 #48101)

  • 当使用连接字符串选项Connection Reset = True时,连接重置使用先前使用的编码进行后续身份验证操作。例如,如果使用 UCS2 读取重置前的最后一列,这将失败。(漏洞 #47153)

  • MySqlDataReader类中, GetSByte函数返回一个 byte值而不是一个 sbyte值。(漏洞 #46620)

  • 尝试从 SQL 脚本创建存储过程时, MySqlException在尝试重新定义时抛出DELIMITER

    MySql.Data.MySqlClient.MySqlException was unhandled
    Message="You have an error in your SQL syntax; check the manual that corresponds to your
    MySQL server version for the right syntax to use near 'DELIMITER' at line 1"
    Source="MySql.Data"
    ErrorCode=-2147467259
    Number=1064
    StackTrace:
    à MySql.Data.MySqlClient.MySqlStream.ReadPacket()
    à MySql.Data.MySqlClient.NativeDriver.ReadResult(UInt64& affectedRows, Int64&
    lastInsertId)
    à MySql.Data.MySqlClient.MySqlDataReader.GetResultSet()
    à MySql.Data.MySqlClient.MySqlDataReader.NextResult()
    à MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior)
    à MySql.Data.MySqlClient.MySqlCommand.ExecuteReader()
    à MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery()
    à MySql.Data.MySqlClient.MySqlScript.Execute()

    注意:MySqlScript该类已修复以支持 SQL 脚本中的定界符语句。(漏洞 #46429)

  • MySQL 连接器/NET 配置文件提供程序 MySql.Web.Profile.MySQLProfileProvider在 Mono 上运行时生成错误。当尝试在字符串中保存字符串时,Profile.Name该字符串未保存到 my_aspnet_Profiles表中。如果尝试强制保存并Profile.Save() 生成以下错误:

    Server Error in '/mono' Application
    
    --------------------------------------------------------------------------------
    
    The requested feature is not implemented.
    Description: HTTP 500. Error processing request.
    
    Stack Trace:
    
    System.NotImplementedException: The requested feature is not implemented.
    at MySql.Data.MySqlClient.MySqlConnection.EnlistTransaction
    (System.Transactions.Transaction transaction) [0x00000]
    at MySql.Data.MySqlClient.MySqlConnection.Open () [0x00000]
    at MySql.Web.Profile.MySQLProfileProvider.SetPropertyValues
    (System.Configuration.SettingsContext context,
    System.Configuration.SettingsPropertyValueCollection collection) [0x00000]
    
    
    --------------------------------------------------------------------------------
    Version information: Mono Version: 2.0.50727.1433; ASP.NET Version: 2.0.50727.1433

    (漏洞 #46375)

  • 使用 MySQL Connector/NET 6.0.4 和 MySQL Server 4.1 时,在尝试执行时会生成异常:

    connection.GetSchema("Columns", ...);

    生成的异常是:

    'connection.GetSchema("Columns")' threw an exception of type
    'System.ArgumentException'System.Data.DataTable {System.ArgumentException}
    base{"Input string was not in a correct format.Couldn't store <'Select'> in
    NUMERIC_PRECISION Column.  Expected type is UInt64."}System.Exception
    {System.ArgumentException}

    (漏洞 #46270)

  • MySQL Connector/NET 方法 StoredProcedure.GetParameters(string)忽略了程序员对该 UseProcedureBodies选项的设置。这破坏了任何应用程序的参数名称与存储过程中的参数名称不匹配的应用程序,导致出现ArgumentException消息 在集合中找不到参数'foo'。和以下堆栈跟踪:

    MySql.Data.dll!MySql.Data.MySqlClient.MySqlParameterCollection.GetParameterFlexible(stri
    ng parameterName = "pStart", bool throwOnNotFound = true) Line 459C#
    MySql.Data.dll!MySql.Data.MySqlClient.StoredProcedure.Resolve() Line 157 + 0x25
    bytesC#
    MySql.Data.dll!MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(System.Data.CommandBeha
    vior behavior = SequentialAccess) Line 405 + 0xb bytesC#
    MySql.Data.dll!MySql.Data.MySqlClient.MySqlCommand.ExecuteDbDataReader(System.Data.Comma
    ndBehavior behavior = SequentialAccess) Line 884 + 0xb bytesC#
    System.Data.dll!System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(System
    .Data.CommandBehavior behavior) + 0xb bytes
    System.Data.dll!System.Data.Common.DbDataAdapter.FillInternal(System.Data.DataSet
    dataset = {System.Data.DataSet}, System.Data.DataTable[] datatables = null, int
    startRecord = 0, int maxRecords = 0, string srcTable = "Table", System.Data.IDbCommand
    command = {MySql.Data.MySqlClient.MySqlCommand}, System.Data.CommandBehavior behavior) +
    0x83 bytes
    System.Data.dll!System.Data.Common.DbDataAdapter.Fill(System.Data.DataSet dataSet, int
    startRecord, int maxRecords, string srcTable, System.Data.IDbCommand command,
    System.Data.CommandBehavior behavior) + 0x120 bytes
    System.Data.dll!System.Data.Common.DbDataAdapter.Fill(System.Data.DataSet dataSet) +
    0x5f bytes

    (漏洞 #46213)

  • MySQL 转换TINYINT(1)失败 boolean。(错误#46205、错误#46359、错误#41953)

  • 如果应用程序休眠的时间超过指定的时间 net_write_timeout,然后在连接上恢复 Read操作,则应用程序会无提示地失败。(漏洞 #45978)

  • 读取数据时,例如使用 MySqlDataAdapteron a ,如果启用了压缩MySqlConnection,MySQL Connector/NET 可能会进入无限循环 。CompressedStream.ReadNextpacket()(漏洞 #43678)

  • 从公共 SVN 存储库检出的源代码构建 MySQL Connector/NET 时发生错误。这发生在使用 Mono 和 Nant 的 Linux 上。Mono JIT 编译器版本为 1.2.6.0。Nant 版本是 0.85。

    当尝试使用以下命令构建(例如)MySQL Connector/NET 5.2 分支时:

    $ nant -buildfile:Client.build

    发生以下错误:

    BUILD FAILED
    
    Error loading buildfile.
    Encoding name 'Windows-1252' not supported.
    Parameter name: name

    (漏洞 #42411)

  • MySQL Connector/NET CHM 文档声明支持 MySQL Server 3.23。(漏洞 #42110)

  • 尝试调用时, 将 aDataAdapter与链接一起 使用会抛出以下异常: MySqlCommandBuilderda.Update(DataRow[] rows)

    Connection must be valid and open

    (漏洞 #34657)