如何删除 MySQL 密码?我不想使用密码来连接数据库。我的服务器运行的是 Ubuntu。
答案1
就我个人而言,我认为最好设置密码并将其保存在 /root/.my.cnf 中:
第一的:
mysqladmin -u root password 'asdfghjkl'
然后编辑root的.my.cnf文件:
[client]
password = asdfghjkl
确保chmod 0600 .my.cnf
。
现在您有密码了,但系统不再提示您输入密码。我的默认 MySQL 服务器安装是每个 MySQL 服务器的完全随机的唯一密码,保存在 .my.cnf 文件中,如下所示。
答案2
是的,密码少是好事。但不要对每个人都开放数据库。
通过unix_socket:
grant usage on *.* to 'root'@'localhost' identified via unix_socket;
这为本地登录的 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.
答案3
如果你确实为 MySQL 设置了密码,请按照以下说明操作恢复 MySQL root 密码,然后将密码设置为空:
对于 5.7.6 及更高版本
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass'
对于 5.7.5 及更早版本
update user set password=PASSWORD("") where User='root';
* 需要重新启动数据库(请参阅链接中的说明)才能生效。
sudo service mysql restart
答案4
该IDENTIFIED VIA unix_socket
语句仅适用于MariaDB。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED VIA unix_socket;
对于 MySQL 来说,也可以通过 来实现相同的效果IDENTIFIED WITH auth_socket
。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED WITH auth_socket;
虽然只相差两个词,但实际上它们并不相同。