阻止MySQL在没有用户或密码的情况下登录



我像这样安装MySQL:

sudo apt install mysql-server -y && mysql_secure_installation;

并进行了以下

CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'user'@'localhost';
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
FLUSH PRIVILEGES;

但是,我仍然可以使用访问MySQL

sudo mysql

我不明白它是如何在没有用户或密码的情况下访问的。。。如何防止这种情况发生?

当您运行sudo mysql命令时,它使用auth套接字进行身份验证,您可以使用下面的查询检查使用的身份验证。

mysql> SELECT plugin from mysql.user where User='root';

如果您禁用了该功能并使用本机身份验证,请运行此查询。

mysql> UPDATE mysql.user SET plugin = 'mysql_native_password', authentication_string = PASSWORD('changeme') WHERE User = 'root';
mysql> FLUSH PRIVILEGES;

如果您需要更多信息,可以阅读有关authsocket的文档。

相关内容

  • 没有找到相关文章

最新更新