随着一个新的(但旧的)安装的Ubuntu和MySQL,我发现我可以通过命令行客户端访问MySQL,而不需要任何用户或密码。
这使我困扰于默认情况,我试图调查它。 以root身份login需要root密码。 但是,在没有指定用户的情况下(即,在命令行中inputmysql
)login时,我既没有用户也没有input密码。
我想我已经跟踪到了debian-sys-maint
这个用户,这个用户似乎一方面拥有完整的MySQL权限,另一方面也是在/etc/mysql/debian.cnf
定义的默认客户端用户。
我的第一本能是完全摆脱用户,因为这对我来说似乎是一个安全漏洞,但在阅读后,包括下面链接的post,似乎需要debian-sys-maint
。
所以我的计划是尝试以下几点:
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'debian-sys-maint'; GRANT RELOAD on *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'xxxxxx'; FLUSH PRIVILEGES;
任何人都可以评论这个build议/预期/正确的方式来保证默认的MySQL安装?
我是否也应该修改/etc/mysql/debian.cnf
以删除此部分?
[client] host = localhost user = debian-sys-maint password = xxxxxx socket = /var/run/mysqld/mysqld.sock
(它警告: # Automatically generated for Debian scripts. DO NOT TOUCH!
)
我打算用我自己的~/.my.cnf
客户端部分replace它。
更新: /etc/mysql/debian.cnf
上的权限是:
-rw------- 1 root root 312 2012-05-20 23:07 /etc/mysql/debian.cnf
参考文献:
答案是debian-sys-maint
帐户是一个红鲱鱼。
我所看到的现象是一个MySQL“匿名”用户。
这是由我昨天发布的以下两个问题来回答的: