我像这样安装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的文档。