首页 文章

root的mariadb密码和unix_socket身份验证

提问于
浏览
1

我在Ubuntu 16.04上的MariaDB上有一个root用户 .

默认情况下,root用户通过 unix_socket 身份验证插件进行身份验证 .

我可以通过设置将身份验证方法切换为密码方法

update mysql.user set plugin='' where user='root';

这很好用 . 但......

是否有可能通过unix_socket(root shell)或密码(当它由localhost:3306连接时)验证root用户?

2 回答

  • 1

    一种可靠而直接的方法是创建另一个超级用户,并在想要通过密码连接时使用它 .

    CREATE USER admin@localhost IDENTIFIED BY 'password';
    GRANT ALL ON *.* TO admin@localhost WITH GRANT OPTION;
    -- etc
    
  • 5

    MySQL认为'localhost'与'127.0.0.1'不同,所以你可以为TCP设置密码而不为Unix套接字设置密码,如下所示:

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY 'xxx' WITH GRANT OPTION;
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED VIA unix_socket WITH GRANT OPTION;
    

相关问题