mysql密码更新取决于Linux上的用户帐户吗?

问题描述

| 嗨,MysqL和Linux专家! 我在本地计算机上安装MysqL服务器时遇到了奇怪的行为问题。这是历史- 我通常以“ 0”用户身份运行,并使用“ 1”获得安装的root用户特权。 我在
Fedora Linux machine 13
上安装了
MysqL 5.1 server
使用
localhost
MysqL客户端进行连接时,我使
root
用户必须具有密码 这就是我需要的-我需要测试一个Shell脚本,该脚本在没有用户名和密码的情况下调用
MysqL
客户端,我需要删除
MysqLs
用户的密码。同样(重要),脚本应从我的计算机的“ 4”用户运行。 MysqL -D dbname sql 这就是我所做的-从我的非root linux帐户启动MysqL客户端,以root @ localhost身份登录,并运行以下命令以删除root @ localhost密码
update user set password = PASSWORD(\'\') where user = \'root\' and host = \'localhost\';
问题! -现在从我的非root Unix帐户中,当我仅运行
MysqL
时,它就成功登录了我。但是当我执行
su
时,以linux root(超级用户)身份登录并运行
MysqL
-我得到
ERROR 1045 (28000): Access denied for user \'root\'@\'localhost\' (using password: NO)
发布脚本-我已经使用超级用户帐户的备用帐户登录,然后重新运行查询以更新用户,但仍然无法正常工作。我怎么能以非root用户身份运行没有用户名和密码的
MysqL
客户端,却不能像linux超级用户一样运行? 任何帮助将不胜感激     

解决方法

直接更新GRANTS或mysql表后,许多人忘记执行
FLUSH PRIVILEGES
。 仅在
FLUSH PRIVILEGES
之后,更改才会生效。     ,MySQL帐户完全独立于系统帐户。它们可能碰巧具有相同的用户名(例如默认的“ 4”帐户是系统帐户,而mysql是超级用户帐户)。 在mysql中的帐户上设置密码后,您必须强制mysql监视器(
mysql
命令)提示输入密码(
-p
)选项,并且如果您的MySQL帐户名可能指定您的MySQL用户名(ѭ20)选项)与您的Linux用户名不匹配: 换一种说法:
mysql -u root -p
会告诉MySQl尝试将您登录到mysql
root
帐户,并提示输入该帐户的密码。