问题描述
|
嗨,MysqL和Linux专家!
我在本地计算机上安装MysqL服务器时遇到了奇怪的行为问题。这是历史-
我通常以“ 0”用户身份运行,并使用“ 1”获得安装的root用户特权。
我在sql
这就是我所做的-从我的非root linux帐户启动MysqL客户端,以root @ localhost身份登录,并运行以下命令以删除root @ localhost密码
Fedora Linux machine 13
上安装了MysqL 5.1 server
使用localhost
的MysqL客户端进行连接时,我使root
的用户必须具有密码
这就是我需要的-我需要测试一个Shell脚本,该脚本在没有用户名和密码的情况下调用MysqL
客户端,我需要删除MysqLs
根用户的密码。同样(重要),脚本应从我的计算机的“ 4”用户运行。
MysqL -D dbname 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尝试将您登录到mysqlroot
帐户,并提示输入该帐户的密码。