今天突然发现,服务器上的Mysql密码我有点记不清了,当时本想着存下来但是并没有存,就上服务器试了一下密码。
$ mysql -uroot -p
Enter password:
输入印象中的密码后,果然成功登录了Mysql命令行。把密码记下来后,我又查看了wordpress数据库专用用户的密码,发现不对劲:我刚刚给root账户输入的密码,正是这个用户所使用的密码,而这是不可能的,我不会为root用户和子用户设置一样的密码。于是我再次使用root用户登录,密码随手乱打,居然也进去了。难道是忘了设置密码?那就设置一个吧。
$ mysqladmin -u root password 'new-password'
设置完密码后,还是用什么密码都能进去。查看 mysql.user ,只有两个用户,用 select password(‘password’) 也确认了root用户的密码确实是刚刚设置的。flush privileges 和重启mysql服务都没有用。然后我找到了这个:

在mariaDB中,默认会有一个叫 console 或 unix_socket 的 plugin ,它允许你无需密码便能从控制台进入 mysql,但同时会禁止密码认证,你无法从别的客户端连接它。我检查了 root 用户的 plugin 列,果然有一个 unix_socket 。但我不打算去掉它,既然这是一个默认配置,并且禁止了外部登录,应该有一定的安全性,如果已经被人黑进了服务器控制台,那修改一个mysql密码也不难,不如就这样留着方便自己了。