2011-01-28 87 views
0

由于某些原因,当创建一个空密码的MySQL用户时,如果用户与系统用户(Ubuntu Server 10.04,MySQL版本5.1.41)具有相同的名称,则只允许连接。根据我目前阅读的所有内容,MySQL用户应该完全独立于系统用户帐户,因此我不知道如何解释发生了什么。允许mysql无密码连接

我做错了什么?某些地方是否存在影响此设置的设置?

(附加信息: 我了此项设置为从本地网络只允许连接;一些我使用的一个项目的工具,而不需要密码的用户。)

这可能似乎是一个重复的,虽然当我搜索我找不到任何关于这个问题的任何问题。如果之前有人问过同样的问题,我很抱歉。

回答

-1

这里是我在mysql文档中发现的东西。

使用SET PASSWORD,INSERT或UPDATE分配帐户非空密码时,必须使用PASSWORD()函数加密密码,否则密码将以明文形式存储。假设你喜欢这个设定密码:

mysql> SET PASSWORD FOR 
    -> 'username'@'localhost' = 'mypass'; 

结果是文本值“将mypass”被存储在用户表中的密码,而不是加密值。当用户使用此密码尝试连接到服务器时,该值将被加密并与存储在用户表中的值进行比较。但是,存储的值是文本字符串'mypass',所以比较失败,服务器拒绝与Access拒绝的连接。errorFirst具有带有某个密码的用户名(系统名除外)。

因此,用一些passowrd来选择你的用户名,然后使用PASSWORD()函数来设置一个空密码。该功能的使用可以看到here

+0

感谢您的回答,但将密码设置为密码('')与创建用户时不添加“由IDENTIFIED BY ”具有相同的效果。我刚刚尝试了一个名字与系统用户不同的用户,并且mysql再次拒绝连接。 – Joseph 2011-01-28 18:29:28