错误1042 MySql C#?

时间:2014-05-31 00:18:23

标签: c# mysql database console connection

我无法通过我的C#cmd连接到我的MySql数据库,它让我得到错误1042 此代码来自: http://social.msdn.microsoft.com/Forums/vstudio/en-US/67226fe6-175a-4f8b-96ab-a22fd836617f/inserting-values-to-mysql-using-c

using System;
using System.Diagnostics;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using MySql.Data.MySqlClient;

class MyClass
{
    public static void Main()
    {
        MySqlConnection conn = new MySql.Data.MySqlClient.MySqlConnection();
        MySqlCommand cmd = new MySql.Data.MySqlClient.MySqlCommand();
        string SQL;

    conn.ConnectionString = "server=SERVER; userid=USER;password=PASSWORD;database=DATABASE;";
    try
         {
            conn.Open();
             MessageBox.Show("Files Inserted into database successfully!",
                    "Success!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
             conn.Close();
        }
        catch (MySql.Data.MySqlClient.MySqlException ex)
        {
            MessageBox.Show("Error " + ex.Number + " has occurred: " + ex.Message,
                "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
}
}

更新 - 已解决 解决了服务器名称是一个糟糕的网址 我用了 db4free.net 也许主持人的破折号是问题

2 个答案:

答案 0 :(得分:3)

当MySQL服务器无法将客户端IP地址解析为主机名时,会报告MySQL错误1042(HY000)。

在我们的MySQL服务器上,我们禁用主机名解析,而是使用IP地址。

如果您不想禁用主机名解析,那么您需要确保MySQL可以将您的客户端IP地址解析为主机名,方法是在/ etc / hosts文件中添加适当的条目(在MySQL上)服务器主机),或向DNS服务器添加适当的条目。

否则,您可以通过在MySQL服务器配置文件的skip-name-resolve部分中添加[mysqld]来禁用主机名解析(并重新启动MySQL服务器)。 注意:使用主机名定义的任何当前用户都无法使用,因为MySQL现在正在寻找(在mysql.users表中定义)表格用户#34; { {1}}",而不是" foo@192.168.1.33",而MySQL并没有找到匹配项。 (如果您的用户都使用foo@tyrion通配符作为主机名定义,则这不是问题。)

答案 1 :(得分:0)

我面临同样的问题,我正在使用我的窗口7 os机器连接到远程mysql服务器,但在我的情况下,禁用防火墙解决了我的问题