MariaDB 完全忽略 root 密码

MariaDB 完全忽略 root 密码

我昨天刚刚在新下载的 Ubuntu 上安装了 MariaDB (mysqld)。然后我运行了脚本

/usr/bin/mysql_secure_installation

并设置新的 root 密码并禁用无密码登录。但是这不起作用,所以我尝试从命令行:

root@www:~# mysqladmin password whatever
root@www:~# mysql -uroot 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 35
Server version: 10.0.24-MariaDB-7 Ubuntu 16.04

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> \q
Bye
root@www:~# 
root@www:~# mysql -uroot -plkasjfdklajsfd
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 38
Server version: 10.0.24-MariaDB-7 Ubuntu 16.04

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [mysql]> select Host , User, Password from user;
+-----------+------+-------------------------------------------+
| Host      | User | Password                                  |
+-----------+------+-------------------------------------------+
| localhost | root | *90837F291B744BBE86DF95A37D2B2524185DBBF5 |
+-----------+------+-------------------------------------------+
1 row in set (0.00 sec)

为什么 mysql 忽略我的密码更改指令,更糟糕的是,它允许以 root 身份无密码登录?

答案1

一些基于 Debian 的发行版已开始为 root 用户使用 UNIX 套接字身份验证插件。这意味着操作系统帐户链接到数据库 root 帐户,并且只有拥有超级用户权限才能访问数据库。据我所知,这样做是为了让初始安装更安全。

要验证是否确实是 UNIX 套接字身份验证插件导致了此问题,您可以以其他用户身份登录并尝试使用 连接到数据库mysql -uroot。 如果失败,则您刚刚确认数据库使用了 UNIX 套接字身份验证插件。

默认情况下,mysql客户端将使用本地 UNIX 域套接字连接到服务器。要使用网络连接,请使用 提供环回地址作为主机名-h 127.0.0.1。这应该允许您使用显式密码以 root 用户身份进行连接。

相关内容