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 访问被拒绝