通过全新(但旧)安装 Ubuntu 和 MySQL,我发现我可以通过命令行客户端访问 MySQL 而无需输入任何用户或密码。
以 root 身份登录需要 root 密码。但如果登录时不指定用户(即,只需输入mysql
在命令行中输入)登录,则不会要求我输入用户名和密码。
我已作为 进行登录stewart@localhost
。不存在这样的用户mysql.user
。
该用户可以看到information_schema
数据库。
为什么该用户存在?我以为 MySQL 用户与 OS 系统帐户是分开的。
答案1
MySQL 将未知用户名视为匿名用户,因此请检查用户表中用户名列中是否有空字符串的行。删除这些或设置密码将阻止无密码登录。
您可以使用 SELECT CURRENT_USER() 检查您是否以匿名用户身份连接。