我无法通过我的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 也许主持人的破折号是问题
答案 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服务器,但在我的情况下,禁用防火墙解决了我的问题