我安装了 mariaDB 10.3。mysql.table 指出“root”登录依赖于 mysql_native_password 插件,没有设置密码。
如果我的 linux 用户是 root,我可以使用连接到 mysql;
mysql -u root -h localhost
如果我以非特权 Linux 用户身份登录,当我尝试连接到 mysql 时,会出现以下错误:
ERROR 1698 (28000): Access denied for user 'root'@'localhost'
通常有这个问题的人有一个像 unix_sock 这样的插件启用(例如看到这个回复),但我没有。通过阅读mysql_native_password 文档,我认为插件不是问题。这个插件似乎不依赖 Linux 用户进行身份验证(我不是英语母语,我可能错过了重点)。
任何想法 ?
正确的。只有
root
大多数基于 Linux 的系统上的帐户才能作为帐户连接到 MariaDB(和 MySQL)root
。root
这是为了防止在 WordPress(或任何其他 CMS)安装使用数据库帐户、受到损害并使攻击者完全控制数据库和连接到它的所有其他网站时,一次又一次地见证糟糕的身份验证做法。如果您想
root
从终端连接连接到 MariaDB,您将需要使用sudo
:在许多情况下,您不需要在此处指定用户名,因为假定服务器的系统管理员想要访问
root
数据库帐户。如果您需要管理员级别的帐户来从外部工具(例如 PhpMyAdmin、TablePlus 或 MySQL Workstation)管理数据库,您可以创建一个帐户并授予适当的权限:
虽然此帐户也可能被滥用,
'root'@'localhost'
但通常最好采用这种方式。