d72*_*17c 24 linux passwords mysql mariadb
我正在开发 Xubuntu 15.04。我已经在各种系统上安装了 MariaDB-Server,并且在安装过程中总是被要求输入 root 密码。然而,这一次,我不记得被要求输入密码。当我尝试在没有密码(或空白密码)的情况下登录时,Access denied for user 'root'@'localhost'出现错误。我尝试通过以下方式完全卸载软件包
sudo apt-get remove mariadb-server
sudo apt-get purge mariadb-server
Run Code Online (Sandbox Code Playgroud)
当我重新安装时,我仍然没有被要求输入 root 密码。
我试图mysqld --skip-grant-tables从方法
mysql如何解决访问被拒绝的用户“根” @“localhost”的。我可以在 mysql 数据库中修改 root 用户的密码 - 至少哈希值会发生变化 - 但是在重新启动 mysql-server 后我仍然无法使用新密码登录。我仍然遇到同样的错误。
用户 debian-sys-maint 不存在。所以,我不能用它来修复任何东西。
任何想法我还能尝试什么?
小智 37
您需要重置密码。所以为此
sudo mysql -u root
use mysql;
update user set plugin='' where User='root';
flush privileges;
exit;
Run Code Online (Sandbox Code Playgroud)
col*_*lan 11
新设置的想法是您根本不应该使用密码。有关详细信息,请参阅UNIX_SOCKET 身份验证插件。
特别相关的是Ubuntu 16.04上/usr/share/doc/mariadb-server-10.0/README.Debian.gz的内容:
在新安装时不会设置 root 密码,也不会再创建 debian-sys-maint 用户。相反,MariaDB 根帐户设置为使用 unix 套接字进行身份验证,例如任何由根或通过 sudo 调用的 mysqld 都会让用户看到 mysqld 提示。
您可能永远不会删除 mysql 用户“root”。尽管没有设置密码,但 unix_auth 插件确保它只能以 root 用户身份在本地运行。
/etc/mysql/debian.cnf 中的凭据指定了 init 脚本用来停止服务器和执行日志轮换的用户。这个曾经是 debian-sys-maint 用户,不再作为 root 可以直接运行。
因此,如果您为 root 禁用该插件并设置密码,则日常 cron 作业将中断,因为它假设它将在没有密码的情况下以 root 身份登录,但使用插件。
后来它说:
脚本应该在用户拥有所需授权并通过 unix_socket 识别时运行。
因此看起来应用程序不应再使用密码。
我按照这篇文章的答案解决了问题:
必须将所有根目录的 mysql.user 的插件字段更改为空白字符串。
| 归档时间: |
|
| 查看次数: |
116696 次 |
| 最近记录: |