请容忍我。我是一个拥有大量Visual经验的Microsoft人员,但我需要使用MySQL数据库完成一些工作。
我试图在这里创建一个小工具,使我们的开发人员能够快速更新数据库记录,并且我正在使用Visual创建一个小型Windows表单来实现这一点。
在Microsoft连接字符串中,我可以这样写:
Server=myServerAddress;Database=myDataBase;User Id=username;Password=password;在MySQL连接字符串中,似乎有多个其他选项,但第一个选项看起来基本相同:
Server=myServerAddress;Database=myDataBase;Uid=username;Pwd=password;当我试图从我的PC打开MySQL连接时,我得到标题中列出的异常(实际上,它显示了我的PC的Uid值和IP地址,而不是localhost,但我希望更多的人以这种方式更容易地识别错误):
public static void MySQLi_Connect() {
m_err = null;
var str = Properties.Settings.Default.ConnStr;
try {
m_conn = new MySqlConnection(Properties.Settings.Default.ConnStr);
m_conn.Open();
} catch (MySqlException err) {
ErrorLog("MySQLi_Connect", err);
}
}我进行了搜索,似乎需要从连接所用的特定IP地址授予Uid on MySQL访问权限。
此外,我在mysql.com文档页上找到了这个
如果您不知道要从其连接的机器的IP地址或主机名,则应在user表中以“%”作为主机列值的行。尝试从客户端计算机连接之后,使用SELECT USER()查询来查看您是如何真正连接的。然后将用户表行中的“%”更改为日志中显示的实际主机名。否则,系统将处于不安全状态,因为它允许从任何主机连接给定的用户名。
有几件事:
jp2code中的一个%设置连接到,但是MySQL说我需要立即更改这个设置,以删除系统漏洞。现在,我问:
发布于 2013-11-25 16:42:01
您可以根据需要配置MySQL服务器的安全性,通常不是连接用户,而是连接应用程序。因此,如果在生产环境中没有密码的根用户是您的错。通常,开发人员可以访问开发环境,所以这不是什么大事。
当然,尽可能多地使用您需要的角色,以您为例,我认为一个用户就足够了。在生产中,使用安全配置文件保存安全密码,并设置mysqlserver受限。
发布于 2016-05-06 11:06:32
我有同样的问题,我发现密码是不正确的。
转到您的sql命令行并键入下面的代码:mydb在下面的行中是您正在处理的数据库的名称。行中的passwd必须与c#代码中的密码相匹配,因此在您的情况下“密码”
grant all privileges on mydb.* to myuser@localhost identified by 'passwd';发布于 2017-03-31 08:23:03
就像OP说的,您可以通配符主机名部分。我在开发服务器上使用了这个(不推荐用于生产服务器):
update mysql.user set host = '%' where host='localhost';然后,我不得不重新启动服务器,以使MySQL使用它(很可能我只是重新启动了MySQL服务)。
https://stackoverflow.com/questions/20196585
复制相似问题