允许linux root用户mysql root无需密码访问

use*_*991 37 mysql security linux password root

在 cPanel 上,当我以 root 身份登录并键入“mysql”而没有主机名和密码时,它使我可以直接访问 mysql root 用户。

我想为我的一台非 cpanel 服务器执行此操作,其中 linux root 用户以与在 cPanel 上相同的方式获取密码较少的登录到 mysql root 用户。

这可能吗 ?

use*_*517 57

最简单的方法是使用 ~/.my.cnf 文件的客户端部分,并在那里添加凭据。

[client]
user=root
password=somepassword
...
Run Code Online (Sandbox Code Playgroud)

使该文件也只能由 root 读取是一个好主意。

  • 我需要指出一个潜在的安全问题。你需要小心一点,不要在mysql服务器用来启动的`/etc/my.cnf`中编辑它。如果您将 mysql root 用户放在 `/etc/my.cnf` 中,任何人都可以在没有密码的情况下使用对每个数据库的所有权限的 mysql 服务器。Iain 在 root 的家中指向 shell 用户自己的 `.my.cnf`,这当然是正确的。 (10认同)

小智 32

对于mysql 5.7+,如果初始设置密码为空,mysql会自动auth_socket作为策略使用。尝试在不更改策略的情况下更新密码将不会有结果。如果您的用户是 ,您始终可以不使用密码登录root

解决方法 运行以下命令更改认证策略并设置密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY ''
Run Code Online (Sandbox Code Playgroud)

参考:https : //www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/

  • 我必须在最后添加一个空字符串才能使其工作:`ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';` (3认同)

小智 8

从 MySQL 5.6.6 开始,您可以使用 mysql_config_editor 创建一个加密文件,该文件将自动登录:

mysql_config_editor set --login-path=client --host=localhost --user=root --password

然后在提示时输入密码。

注意:如果您的密码中包含“#”,并且可能包含其他字符,请在输入密码时使用单引号。