Я пытаюсь подключить свое веб-приложение к серверу MariaDB 10.Я уже делаю это без проблем на версии 5, используя MySQL Connector / NET.В версии 10 я получаю сообщение об ошибке перед выполнением запроса, когда программное обеспечение выполняет BeginTransaction.
IDbConnection dbConnection=new MySqlConnection(connectionString);
dbConnection.BeginTransaction();
Классическая ошибка:
[MySqlException (0x80004005): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1]
MySql.Data.MySqlClient.MySqlStream.ReadPacket() +384
MySql.Data.MySqlClient.NativeDriver.GetResult(Int32& affectedRow, Int64& insertedId) +379
MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force) +119
MySql.Data.MySqlClient.MySqlDataReader.NextResult() +901
MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior) +2308
MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery() +133
MySql.Data.MySqlClient.MySqlConnection.BeginTransaction(IsolationLevel iso) +761
MySql.Data.MySqlClient.MySqlConnection.BeginDbTransaction(IsolationLevel isolationLevel) +19
Я проверил исходный код соединителя икажется, происходит, когда он выполняет
cmd.CommandText = "BEGIN";
cmd.ExecuteNonQuery();
в этом файле https://github.com/mysql/mysql-connector-net/blob/6.9/Source/MySql.Data/Connection.cs
Я задал вопрос как проблему с Connector / NET, но я получаю ту же ошибку при выполнении «BEGIN» с HeidiSQLтак что, возможно, это общая проблема.
Кажется, это связано с разделителями, но звучит странно, потому что это нечто внутреннее для коннектора, и HeidiSQL и мое программное обеспечение, просто изменяя строку соединения, корректно работают на MariaDB 5.
Возможно, из-за какой-то конфигурации сервера?