不再支持使用旧密码进行身份验证,请使用4.1样式密码

use*_*462 21 c# mysql authentication

我的网站有hostgator,我想用C#windows应用程序访问mysql数据库,但是当我尝试连接时得到了这条消息:

"不再支持使用旧密码进行身份验证,请使用4.1样式密码"

我试过给定解决方案:

SET SESSION old_passwords=0;
SET PASSWORD FOR user@host=PASSWORD('your pw here');
Run Code Online (Sandbox Code Playgroud)

第一个查询执行成功但我在第二个查询执行时收到错误"用户@主机访问被拒绝".我不明白为什么会出现这个问题.我正在使用MySQL-connecter-net 6.6.5.

我成功地将我的数据库与MySql workbench 5.2.47连接起来.

有谁可以帮助我,我可以做更多的事情?


我已联系我的托管网站,他们对my.cnf文件进行了更改,以使用4.1样式密码.我能够连接mysql

mysql -u <username> -p <password> -h <hostname>;
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用mySQL连接器网6.6.5连接C#时,我再次遇到此错误.

我在Windows 8 64位上使用Visual Studio 2012和MySQL连接器6.6.5.这是我用来连接的代码

using MySQL.Data.MySQLClient;

private void button1_Click(object sender, EventArgs e)
            {
                string connStr = String.Format("server={0};port={1};uid={2};password={3};database={4}",
                    txtserver.Text, txtPort.Text, txtUser.Text, txtPassword.Text, txtDatabase.Text);
                conn = new MySqlConnection(connStr);
                try
                {
                    conn.Open();
                    MessageBox.Show("Test Connection Succeded");
                }
                catch (MySqlException ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
Run Code Online (Sandbox Code Playgroud)

我无法理解问题出在哪里.请帮我

max*_*nes 21

我有同样的问题.在我的情况下,只需通过Workbench运行我的数据库上连接的下面命令:

SET SESSION old_passwords=0;
SET PASSWORD FOR my_user=PASSWORD('my_password');
Run Code Online (Sandbox Code Playgroud)

之后,我可以使用常见的mysql连接字符串在c#代码中使用MySql Connector 6.6.5连接:

"server=my_server_ip;user=my_user;database=my_db;port=3306;password=my_password;"
Run Code Online (Sandbox Code Playgroud)

  • 由于OP没有运行`SET PASSWORD FOR ...`的权限,他们可能只是尝试`SET PASSWORD = PASSWORD('my_password');`(它设置当前用户的密码,不需要特殊权限). (6认同)

dia*_*isj 5

今天我在C#应用程序中遇到了类似的问题.我尝试连接到hostgator.com(mysql)上的服务器并连接到localhost.阅读了很多帖子并做了很多修改后,每一步都跟着我无法连接到我的hostgator mysql.

我的解决方案是将MySql Connector/NET库从版本6.*更改为版本5.*.更改后,我的应用程序连接成功.

虽然这对每个人来说可能都不是一个可行的解决方案,但它可能对一些人有用