MySQL:我省略了一个空间 – 我做了什么?

我很好奇,学习…这是非紧急的

在运行19个数据库的生产服务器上,我input了这个错字

mysql -uroot-p[passwd] ^ omitted space 

我很快就享受了12秒钟的鲨鱼 – 吃 – 五级高心率:

 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | test | +--------------------+ 

我已经证实这个错误是无害的**,但现在很好奇,这是如何产生输出,而不是错误。

我的SQL-Fu增长,但还不是很强。 我明确尝试用无意的用户root-ppasswd进行身份validation,但是既没有将密码传递给mysql,也没有现有的真实凭证,我本来希望命令失败 – 这是否产生了一个新的理论数据库实例等待其永久写入的机会?

**请允许我阻止那些倾向于强调与<enter>键过早接触的危险的人。 是的 – 空心点duck。

它将整个string视为用户名,并且没有密码,MySQL客户端会将其作为匿名login。

 mysql -usomerandomstring mysql> SELECT CURRENT_USER(); +----------------+ | CURRENT_USER() | +----------------+ | @localhost | +----------------+ 

更新

我知道我会冒险在这里学习一些东西。 🙂

不想排除哈维的有用答案,但地址同仁SQL noobs …

正如哈维提到的,我已经绊倒了匿名login。 我的手册没有引用匿名用户 – 不是我在发布之前阅读完整的内容,甚至不知道要寻找什么,这就是为什么networkingsearch很快地屈服于ServerFault。

我find了关于删除匿名login的build议 ,即将到达您附近的非工作日:

 DELETE FROM mysql.user WHERE User='';