c# - 使用 C# 无法连接到 MySQL 服务器,但使用 Workbench 没有问题

标签 c# mysql database-connection mysql-workbench

我正忙着拔头发。感觉解决方案应该是显而易见的或/和许多其他人也有同样的问题。但我找不到解决方案(也许是没有提出正确的问题)。

问题: 我无法使用 C# 代码连接 MySQL 服务器。我使用相同的代码(显然不同的凭据)连接到另一台服务器没有问题。我在使用工作台创建“问题”服务器的连接或服务器实例时没有遇到问题。因此,这表明这不是服务器上的端口或权限问题。另外,它不可能是代码或 MysqlConnector 问题,因为其他服务器没有问题。错误1042

代码:

MySqlConnection conn = null;
string newCnnStr = "server=Win10Server;User Id=root;password=LamePassword;Persist Security Info=True;database=payrolldb;convert zero datetime=true";
        try
        {
            conn = new MySqlConnection(newCnnStr);
            conn.Open();
            txtTmpStatus.Text = "Connected";
            return true;
        }
        catch (ArgumentException)
        {
            txtTmpStatus.Text = "Check the Server String";
        }
        catch (MySqlException ex)
        {
            switch (ex.Number)
            {
                case 1042:
                    txtTmpStatus.Text = "Unable to connect to the Server";
                    break;
                case 0:
                    txtTmpStatus.Text = "Access denied";
                    break;
                default:
                    break;
            }
        }
        finally
        {
            if (conn.State == ConnectionState.Open)
            {
                conn.Close();
            }
        }
        return false;

我还尝试将端口 3306 添加到连接字符串 - 没有变化

最佳答案

好的,所以我用主机名替换了 IP 地址(我应该在几个小时前就尝试过)并且它工作了。因此,由于某种原因,C# 无法解析主机名。怀疑它可能与“Van-PC”中的“-”有关,因为其他服务器的主机名中没有“-”。是的,我知道在我的代码示例中名称是不同的。

关于c# - 使用 C# 无法连接到 MySQL 服务器,但使用 Workbench 没有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51560165/

相关文章:

mysql - jdbc转MYSQL错误: "table airportdetails doesn' t exist"

mysql - 为什么我的mysql默认密码不是空字符串

PHPMyadmin 调用未定义函数 PMA_SQP_parse()

c++ - 如何检测 Oracle 断开/停止的连接?

c# - 如何输入整数数组

php - 如何在一个查询中完成多个查询

java - Java 中的集中式数据库连接管理

c# - Csvhelper 如何使用本地化创建自定义 header ?

c# - Razor 缺少匹配的结束标记

c# - 请求 channel 在等待回复时超时