MariaDB:每次重启后访问被拒绝

Posted

技术标签:

【中文标题】MariaDB:每次重启后访问被拒绝【英文标题】:MariaDB: Access Denied after every reboot 【发布时间】:2018-04-22 09:58:39 【问题描述】:

我在 raspberry pi 3 (raspbian) 上使用 MariaDB,并且我有具有特定密码的 root 用户

问题:当我重新启动树莓派时,我得到用户 root@localhost 的访问被拒绝

我确实使用 mysqld --skip-grant-tables 重置了 root 密码,并刷新了权限。然后我重新启动了服务器。

之后,当我输入 sudo mysql 时,我无需输入密码即可登录。

当我再次重新启动树莓派时,我再次拒绝用户 root@localhost 的访问。 我再次切换到skip-grant-tables,查看mysql.user表,但密码设置正确!

这可能是什么原因?

【问题讨论】:

命令行工具mysql 是否在树莓派上运行?或者它是否需要通过 TCP/IP。在后一种情况下,“localhost”不是客户端机器。 是的,mysql 是通过命令行运行的(我只是使用远程桌面)。它不需要通过 tcp/ip。 【参考方案1】:

可能是由于 MariaDB 的基于 Unix 套接字(as explained here) 验证用户(root)的机制。尝试运行此查询:

UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root' AND plugin = 'unix_socket'; FLUSH PRIVILEGES;

然后重启 MariaDB。

【讨论】:

感谢您的提示,但没有工作。我还删除了文件夹 /etc/mysql 和 /var/mysql 并重新安装了 mariadb,导致相同的行为。 您是否使用 ssh 连接到 RPi ? 我花了一些时间尝试,问题确实是它仅通过 unix 套接字进行身份验证,虽然用户表中的插件列是空的。我无法让标准密码身份验证工作,但至少我现在可以使用它。接受最佳答案,因为提示是正确的,非常感谢。

以上是关于MariaDB:每次重启后访问被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

Confluence 的 MariaDB 设置“用户访问被拒绝”

Mariadb 连接客户端:mysql 8.0 上的用户访问被拒绝(使用密码:否)

Homebrew Mariadb Mysql 安装 root 访问被拒绝

不知道为啥用VS调试的时候被拒绝访问

访问路径“Enrollments.zip”被拒绝,运行后台服务运行后

安装后phpmyadmin访问被拒绝的解决方案