启用对 MySQL 的无密码访问

Ben*_*Ben 20 mysql ubuntu

如何删除我的 MySQL 密码?我不想有密码来连接到数据库。我的服务器正在运行 Ubuntu。

fre*_*eit 37

就个人而言,我认为最好设置一个密码并将其保存在 /root/.my.cnf 中:

第一的:

mysqladmin -u root password 'asdfghjkl'
Run Code Online (Sandbox Code Playgroud)

然后编辑 root 的 .my.cnf 文件:

[client]
password = asdfghjkl
Run Code Online (Sandbox Code Playgroud)

确保chmod 0600 .my.cnf.

现在您有了密码,但系统不再提示您输入密码。我的默认 MySQL 服务器安装是每个 MySQL 服务器的完全随机的唯一密码,保存在 .my.cnf 文件中,如下所示。

  • 您可能需要在 .my.cnf 中将该密码括起来。没有它对我不起作用。 (3认同)
  • 如果您需要创建 /root/.my.cnf,值得在其上明确设置 0600 权限以确保没有其他用户可以窥探。大多数情况下,普通用户无法进入 /root,但额外的偏执几乎总是有道理的。 (2认同)

小智 16

是的,密码越少越好。但不要只是为每个人打开数据库。

通过 unix_socket:

grant usage on *.* to 'root'@'localhost' identified via unix_socket;
Run Code Online (Sandbox Code Playgroud)

这为本地登录的 root 用户提供了无密码的 mysql 访问权限。顺便提一句。这是最近 ubuntu / debian 版本中的默认设置。

some_user@box: mysql -u root  # denied
root@box: mysql               # good
some_user@box: sudo mysql     # good, if "some_user" has sudo rights.
Run Code Online (Sandbox Code Playgroud)

解释性幻灯片:https : //www.slideshare.net/ottokekalainen/less-passwords-more-security-unix-socket-authentication-and-other-mariadb-hardening-tips

  • 欢迎来到顺丰!可爱的第一个答案:清晰,一个很好的总结,一个进一步探索的链接,它为现有的答案语料库增加了一些东西。我很高兴成为你的第一个投票者,我希望你留下来写更多这样的答案。 (4认同)

Ste*_*ski 10

如果您确实为 MySQL 设置了密码,请按照Recover MySQL root Password 中的说明进行操作,然后将您的密码设置为 null:

对于 5.7.6 及更高版本

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

对于 5.7.5 及更早版本

update user set password=PASSWORD("") where User='root';
Run Code Online (Sandbox Code Playgroud)

* 需要重启数据库(参见链接中的说明)才能生效。

sudo service mysql restart
Run Code Online (Sandbox Code Playgroud)


jkf*_*kff 5

你也可以这样做:

grant all privileges on *.* to 'root'@'localhost' identified by '';
Run Code Online (Sandbox Code Playgroud)