MariaDB root用户


1

美好的一天,

我使用skip grant tables选项登录mariadb。然后我为localhost root用户设置密码。然后我刷新了特权。但是,我仍然可以使用以下命令登录。

mysql -uroot

这是我的MariaDb版本。

服务器版本:10.0.27-MariaDB-0ubuntu0.16.04.1 Ubuntu 16.04


你有没有终止运行的进程--skip-grant-tables。以防万一,终止所有mysql / mariadb进程,重启服务并再试一次。您运行的是哪个用户mysql -u root
Daniel

是。当我在mysql.user表中查询根记录时,密码列有一个值,但我仍然可以在没有它的情况下登录。
Jon Abaca 2016年

Answers:


2

您显然是mysql -urootroot系统帐户下运行。

10.0.27-MariaDB-0ubuntu0.16.04.1是由Ubuntu提供的包。最近他们默认切换到本地root帐户的Unix套接字身份验证。如果你跑

MariaDB [(none)]> select user, host, password, plugin from mysql.user;

你应该看到这样的东西:

MariaDB [(none)]> select user, host, password, plugin from mysql.user;
+------+-----------+-------------------------------------------+-------------+
| user | host      | password                                  | plugin      |
+------+-----------+-------------------------------------------+-------------+
| root | localhost | *94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29 | unix_socket |
+------+-----------+-------------------------------------------+-------------+
1 row in set (0.00 sec)

当然,如果你不想要它,你可以unix_socketplugin字段中删除,刷新权限,然后它应该像以前一样工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.