1

Mono 2.10.5 を使用して、Ubuntu 11.10 で動作するhttp://www.mono-project.com/MySQLからデモを取得しようとしています。

(名前を変更した後) MySQL v2 ドライバーを gac にインストールしました。machine.config にプロバイダー a 行を追加しました。

Hello World デモは正常にコンパイルおよび実行されます。次のコードが実行され、MSVS で正常に接続されます。

コンパイル コマンドは動作します: mcs TestMysqlConnect.cs -r:System.Data.dll -r:/home/steve/MONO/Assemblies/Mysql/v2/MySql.Data.dll

using System;
using System.Data;
using MySql.Data.MySqlClient;

public class Test
{
   public static void Main(string[] args)
   {
      string connectionString =
      "Server=192.168.111.4;" +
      "Database=LOADTRACKER;" +
      "Port=3306;" +
      "User ID=oec;" +
      "Password=oec;" +
      "Pooling=false";

    Console.WriteLine("Create MySqlConnection");

   IDbConnection dbcon;
   dbcon = new MySqlConnection(connectionString);

    Console.WriteLine("dbcon.Open();");

   dbcon.Open();

   IDbCommand dbcmd = dbcon.CreateCommand();

    Console.WriteLine("dbcon.CreateCommand();");

   // requires a table to be created named employee
   // with columns firstname and lastname
   // such as,
   //        CREATE TABLE employee (
   //           firstname varchar(32),
   //           lastname varchar(32));
   string sql =
       "SELECT Account, Security " +
       "FROM accesslist";
   dbcmd.CommandText = sql;
   IDataReader reader = dbcmd.ExecuteReader();
   while(reader.Read()) {
        string acct = (string) reader["Account"];
        string sec = (string) reader["Security"];

        Console.WriteLine("Acct: " + acct + " (" + sec + ")");
   }
   // clean up
   reader.Close();
   reader = null;
   dbcmd.Dispose();
   dbcmd = null;
   dbcon.Close();
   dbcon = null;
   }
}

このコードを実行すると、以下が生成されます。

$mono ./TestMysqlConnect.exe
Create MySqlConnection
dbcon.Open();

Unhandled Exception: System.OverflowException: Number overflow.
  at (wrapper managed-to-native) object:__icall_wrapper_mono_array_new_specific (intptr,int)
  at MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.HandleAuthChange (MySql.Data.MySqlClient.MySqlPacket packet) [0x00000] in <filename unknown>:0
  at MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.Authenticate (Boolean reset) [0x00000] in <filename unknown>:0
  at MySql.Data.MySqlClient.NativeDriver.Authenticate (System.String authMethod, Boolean reset) [0x00000] in <filename unknown>:0
  at MySql.Data.MySqlClient.NativeDriver.Open () [0x00000] in <filename unknown>:0
  at MySql.Data.MySqlClient.Driver.Open () [0x00000] in <filename unknown>:0
  at MySql.Data.MySqlClient.Driver.Create (MySql.Data.MySqlClient.MySqlConnectionStringBuilder settings) [0x00000] in <filename unknown>:0
  at MySql.Data.MySqlClient.MySqlConnection.Open () [0x00000] in <filename unknown>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.OverflowException: Number overflow.
  at (wrapper managed-to-native) object:__icall_wrapper_mono_array_new_specific (intptr,int)
  at MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.HandleAuthChange (MySql.Data.MySqlClient.MySqlPacket packet) [0x00000] in <filename unknown>:0
  at MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.Authenticate (Boolean reset) [0x00000] in <filename unknown>:0
  at MySql.Data.MySqlClient.NativeDriver.Authenticate (System.String authMethod, Boolean reset) [0x00000] in <filename unknown>:0
  at MySql.Data.MySqlClient.NativeDriver.Open () [0x00000] in <filename unknown>:0
  at MySql.Data.MySqlClient.Driver.Open () [0x00000] in <filename unknown>:0
  at MySql.Data.MySqlClient.Driver.Create (MySql.Data.MySqlClient.MySqlConnectionStringBuilder settings) [0x00000] in <filename unknown>:0
  at MySql.Data.MySqlClient.MySqlConnection.Open () [0x00000] in <filename unknown>:0

興味深いことに、間違ったユーザー/パスワードを入力すると、予想される例外が発生します。

[ERROR] FATAL UNHANDLED EXCEPTION: MySql.Data.MySqlClient.MySqlException: Authentication to host '192.168.111.4' for user 'root' using method 'mysql_native_password' failed with message: Access denied for user 'root'@'linux' (using password: YES) ---> MySql.Data.MySqlClient.MySqlException: Access denied for user 'root'@'linux' (using password: YES)

どんな助けでも大歓迎です。ありがとうございました。

4

0 に答える 0