我无法通过 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);
}
}
}
更新 - 已解决 解决了服务器名称是一个错误的 url 我用了 db4free.net 也许我主机中的破折号是问题所在
最佳答案
当 MySQL 服务器无法将客户端 IP 地址解析为主机名时,会报告 MySQL 错误 1042 (HY000)。
在我们的 MySQL 服务器上,我们禁用主机名解析,而是使用 IP 地址。
如果您不想禁用主机名解析,那么您需要确保 MySQL 可以将您的客户端 IP 地址解析为主机名,方法是将适当的条目添加到/etc/hosts 文件(在 MySQL 服务器主机上),或向 DNS 服务器添加适当的条目。
否则,您可以通过在 MySQL 服务器配置文件的 [mysqld]
部分添加 skip-name-resolve
来禁用主机名解析(并重新启动 MySQL 服务器) . 注意:任何使用主机名定义的当前用户都将不可用,因为 MySQL 现在将查找(在 mysql.users 表中定义)形式为“foo@192.168”的用户.1.33
”,而不是“foo@tyrion
”,MySQL 不会找到匹配项。 (如果您的用户都使用 %
通配符定义为主机名,这不是问题。)
关于c# - 错误 1042 MySql C#?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23965151/