Mysql (MariaDB 10.0.29): Set root password, but still can login without asking password?

后端 未结 3 1958
感情败类
感情败类 2021-01-31 16:44

I want to secure mysql by setting root password. I reset root password successfully:

MariaDB [(none)]> select Host, User, Password from mysql.user;
+---------         


        
3条回答
  •  佛祖请我去吃肉
    2021-01-31 17:04

    On MySQL table you have a column called plugin:

    MariaDB [(none)]> SELECT host, user, password, plugin FROM mysql.user LIMIT 0,1;
    +-----------+------+-------------------------------------------+--------+
    | host      | user | password                                  | plugin |
    +-----------+------+-------------------------------------------+--------+
    | localhost | root | *                                         |        |
    +-----------+------+-------------------------------------------+--------+
    1 row in set (0.00 sec)
    

    If I remember correctly the default plugin for mariaDB installations are 'console' or 'unix_socket', and this plugin allows you to enter without password, from console. But also disable authentication with password, and you cannot connect from another clients.

    Simply update the plugin field with empty ('') value, and then, use FLUSH PRIVILEGES;

    SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
    UPDATE mysql.user SET plugin = '' WHERE user = 'root' AND host = 'localhost';
    FLUSH PRIVILEGES;
    

    With this, you have the problem solved.

提交回复
热议问题