出于某种原因,在创建具有空密码的MySQL用户时,如果用户具有与系统用户相同的名称(Ubuntu Server 10.04,MySQL版本5.1.41),则仅允许连接。根据我到目前为止所读到的所有内容,MySQL用户应该与系统用户帐户完全分开,所以我不知道如何解释发生了什么。
我做错了吗?是否有某些设置影响了这个?
(附加信息: 我将其设置为仅允许来自本地网络的连接;我在项目中使用的一些工具需要没有密码的用户。)
这似乎是重复的,但是当我搜索时,我找不到任何关于此问题的先前问题。如果以前曾问过同样的问题,我道歉。
答案 0 :(得分:-1)
这是我在mysql文档中找到的东西。
使用SET PASSWORD,INSERT或UPDATE为帐户分配非空密码时,必须使用PASSWORD()函数加密密码,否则密码将以明文形式存储。假设您分配了这样的密码:
mysql> SET PASSWORD FOR
-> 'username'@'localhost' = 'mypass';
结果是文字值'mypass'作为密码存储在用户表中,而不是加密值。当用户尝试使用此密码连接到服务器时,该值将被加密并与存储在用户表中的值进行比较。但是,存储的值是文字字符串'mypass',因此比较失败并且服务器拒绝与Access拒绝的连接errorFirst具有用户名(系统名称除外)和一些密码。
因此,请选择一个passowrd用户名,然后使用PASSWORD()
函数设置一个空密码。可以看到该功能的使用here。