我遇到了一个奇怪的问题,我的 mysql 自动丢失/重置 root 密码。我的意思是它将密码重置为无。这个月已经发生过两次了。我担心这可能是一个安全问题,因为数据是开放的,只等着有人尝试不输入密码!
以下是版本:
mysql --version
mysql Ver 14.14 Distrib 5.1.56, for redhat-linux-gnu (i386) using readline 5.1
任何帮助,将不胜感激。
更新:
从 mysql.user 中选择用户、主机、密码的输出;密码重置后的样子
| root | localhost |
| root | 127.0.0.1 |
| | localhost | |
| admin | localhost | ################################# | (I have removed the actual output with #)
因此,除另一个名为“admin”的用户外,所有密码均为空白
答案1
这个答案与发生此行为的 Ruby on Rails 框架有关
- 使用 root 用户和密码登录 mysql
- 使用 mysql “rails new projectname
-d mysql”引导新的 rails 项目 - 不要修改 config/database.yml - 服务器的默认凭据为名称:root,密码为空
- rake db:create 提示出现 - 要求输入 root 密码,然后当您提供 root 密码时
答案是在第 68 行的 GRANT 命令中这里
基本上它使用与您当前的 database.yml 匹配的凭据执行 GRANT 命令
答案2
1)如果可以,请启用 SQL 日志记录。
log = /var/log/mysql/mysql.log
这将允许您跟踪密码的更新时间,并从那里将其与其他日志中的其他活动关联起来。
2) 您是否正在运行管理进程(例如 Plesk)或类似进程?您可能需要检查它是否默认重置登录。
3) 您是唯一有权访问服务器的人吗?如果不是,您可能需要验证没有其他人可以访问数据库,或者至少没有 SQL 数据库的 root 密码。