如何在不存在的用户帐户下成功登录?

我正在尝试在测试实验室中设置ownCloud 。 我以某种方式设法创建了一个’owncloud’用户(这很好)。 该帐户有一个空密码(我不确定是怎么回事),所以我试图设置一个:

以用户身份登录后,MySQL和“无当前用户”

由于我不理解的原因(我不是数据库专家),数据库告诉我,即使我使用’owncloud’测试帐户登录,也没有当前用户。

有关如何使MySQL按预期运行的任何想法?

编辑:我错误的用户’owncloud’。 它不是通过ownCloud设置创建的(我认为我将服务器的名称(’owncloud’)与用户(’owncloud’)混淆了,因为我预计它会在那里)。

新问题:如何在一个不存在的用户帐户下成功登录?

CURRENT_USER()的以下结果

 mysql> SELECT CURRENT_USER(); +----------------+ | CURRENT_USER() | +----------------+ | @localhost | +----------------+ 1 row in set (0.00 sec) 

说您当前正在使用该数据库作为匿名用户 。 新安装的MySQL db在其mysql.user表中具有以下用户条目:

 mysql> SELECT user,host,password from mysql.user; +------------------+-----------------+-------------------------------------------+ | user | host | password | +------------------+-----------------+-------------------------------------------+ | root | localhost | *........................................ | | root | xxxx | *........................................ | | root | 127.0.0.1 | *........................................ | | root | ::1 | *........................................ | | | localhost | | | | xxxxx | | | debian-sys-maint | localhost | *........................................ | +------------------+-----------------+-------------------------------------------+ 7 rows in set (0.00 sec) 

有一些root帐户(密码安全)和两个允许从localhost登录的匿名帐户(xxxxx条目是计算机的主机名)。

如果用户表中缺少用户名和密码,则以下规则适用:

如果“用户”值为空,则它与任何用户名匹配。 如果与传入连接匹配的用户表行具有空白用户名,则该用户被视为没有名称的匿名用户,而不是具有客户端实际指定名称的用户。 这意味着空白用户名用于连接持续时间内的所有进一步访问检查(即,在阶段2期间)。

(参见MySQL文档,“6.2.4。访问控制,第1阶段:连接validation” )

通常,在安装MySQL之后,您应该注意文档的以下部分:“ 2.11.2。保护初始MySQL帐户 ”。

set password命令有错误。 您必须为谁指定设置密码。正确的语法是

 SET PASSWORD FOR 'user-name-here'@'hostname-name-here' = PASSWORD('new-password-here');