2016-10-28 4 views
1

Я пытаюсь подключиться к локальной базе данных MySQL, используя проверку подлинности Windows (встроенная защита). Я использую следующую строку соединения:NullReferenceException при попытке подключиться к MySQL с проверкой подлинности Windows

server=localhost;database=mydatabase;integratedsecurity=True 

На MySqlConnection.Open() я получаю `NullReferenceException где-то глубоко внутри. Вот трассировки стека:

at MySql.Data.MySqlClient.Authentication.MySqlNativePasswordPlugin.MoreData(Byte[] data) 
at MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.AuthenticationChange() 
at MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.HandleAuthChange(MySqlPacket packet) 
at MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.Authenticate(Boolean reset) 
at MySql.Data.MySqlClient.NativeDriver.Authenticate(String authMethod, Boolean reset) 
at MySql.Data.MySqlClient.NativeDriver.Open() 
at MySql.Data.MySqlClient.Driver.Open() 
at MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings) 
at MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection() 
at MySql.Data.MySqlClient.MySqlPool.GetPooledConnection() 
at MySql.Data.MySqlClient.MySqlPool.TryToGetDriver() 
at MySql.Data.MySqlClient.MySqlPool.GetConnection() 
at MySql.Data.MySqlClient.MySqlConnection.Open() 

Некоторые подробности о моей установке:

  • Windows 10 x64
  • MySQL Server 5.7.16 x64
  • Connector/NET 6.9.9 x86
  • C# с Visual Studio 2015, предназначенной для .Net Framework 4.5.2

Это ошибка на сервере или в коннекторе? Или у меня есть ошибка в моей строке подключения?

ответ

1

Для проверки подлинности Windows необходимо установить Windows Native Authentication Plugin. И эта функция доступна только на их коммерческой (корпоративной) версии. Если вы используете версию сообщества, кажется, что вы не можете использовать эту функцию и использовать стандартную строку подключения:

server=server_address;uid=user_id;pwd=password;port=mysql_port;database=your_database 
0

Используйте свой IP-адрес, когда определить сервер. Без использования localhost.

connstr=[ip adress];database=mydatabase;uid=[uid];password=[password]; 
integratedsecurity=True 

MySqlConnection conn=new MySqlConnection(connstr); 
Смежные вопросы