我刚刚安装了 MySQL 服务器,root 帐户没有密码。系统提示我输入 root 密码 3 次,但我三次都将其留空,因为我不想使用密码。但现在看来,这可能不是一个好主意。
我尝试从工作台连接(现在输入密码),但收到错误:Access denied for user 'root'@'localhost'.
为什么没有密码?
我现在意识到,如果我只在安装时提供了一些虚拟密码,我就不会有任何问题,所以我尝试通过键入以下内容来设置它:mysqladmin -u root -p password
;输入空白密码,再次输入,得到以下信息:
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost'
如果我只是在控制台中输入“mysql”,我会得到:
Access denied for user 'me'@'localhost' (using password: NO)
如果我可以拥有没有密码的 root 帐户,并且如果在这种情况下我不会遇到太多问题,那么我想不使用密码而保留它,但如果这不好,请告诉我如何设置密码。如果最好不要密码,请告诉我如何无需密码即可连接:)
编辑:Linux 发行版:Mint Cinnamon 64 位; MySQL版本:5.7
答案1
默认情况下,Debian/Ubuntu/Mint 有一个具有管理访问权限的用户,即用于关闭 MySQL 的用户,名为debian-sys-maint
.
转到/etc/mysql/debian.cnf
格式如下的文件:
[client]
host = localhost
user = debian-sys-maint
password = XXXXXXXX
socket = /var/run/mysqld/mysqld.sock
从那里获取密码,该密码是在安装 MySQL 时随机生成的(例如,它在服务器之间不同);
并使用以下命令登录 MySQL:
mysql -udebian-sys-maint -pXXXXXXXX
之后,您可以更改 root 密码。
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');
请注意,这在 MySQL 5.7 中略有变化。看一下如何使用 MySQL v5.7 更改 MySQL 'root' 密码?
答案2
你应该运行:
# mysql_secure_安装
您可以为全新安装的 mysql 服务器设置 root 密码。