我正在尝试使用Windows身份验证(集成安全性)连接到本地MySQL数据库。我使用以下连接字符串:
server=localhost;database=mydatabase;integratedsecurity=True
On 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()
有关我的设置的一些细节:
这是服务器或连接器中的错误吗?或者我的连接字符串中有错误吗?
答案 0 :(得分:1)
Windows身份验证需要安装并启用Windows Native Authentication Plugin。此功能仅适用于其商业(企业)版本。如果您使用的是社区版本,则似乎您无法使用此功能并使用标准连接字符串:
server=server_address;uid=user_id;pwd=password;port=mysql_port;database=your_database
答案 1 :(得分:0)
定义服务器时使用您的IP地址。不使用localhost。
connstr=[ip adress];database=mydatabase;uid=[uid];password=[password];
integratedsecurity=True
MySqlConnection conn=new MySqlConnection(connstr);