完全重置 MySQL

完全重置 MySQL

我刚刚启动了 CentOS 6 服务器。我在上面安装了 mysql

yum install mysql-server

在我启动 MySQL 服务后,它在 STDOUT 上输出了一堆关于更改 root 帐户密码的必要性的信息。我运行了

/usr/bin/mysql_secure_installation

并按照提示进行操作。

然后我意识到 CentOS 存储库提供的 MySQL 版本已经过时了,所以我卸载了它

service mysqld stop
yum remove mysql-*

我从 Oracle 网站获取了最新的 MySQL Community Server RPM,并使用

yum localinstall mysql-community-server-5.7.10-1.el6.x86_64.rpm
yum install mysql-community-server

但是当我启动它时,我没有收到任何关于为我的 root 用户设置密码的 STDOUT 消息,并且当我再次运行 mysql_secure_installation 时,它不会接受我的详细信息,无论是使用空白密码还是使用我之前设置的密码:

Error: Access denied for user 'root'@'localhost' (using password: NO)
Error: Access denied for user 'root'@'localhost' (using password: YES)

我尝试卸载 mysql-community-server,手动删除 /var/lib/mysql,手动删除 /usr/share/mysql,然后重新安装 mysql-server(我安装的原始包),但我仍然无法重新登录 MySQL。

我也尝试过使用

mysql_safe --init-file=/home/resetPassword.sql

使用一个包含重置我的 root 用户帐户的命令的文件,甚至尝试创建一个新的 root 用户帐户,但这只会破坏我的 SSH 会话并且不会重置我的密码。

我以 root 身份登录,因此省略 sudo 应该没有关系。

数据库中没有任何需要保留的数据,我只是想能够完全删除它并从头开始。

谢谢,

耀明

答案1

好的,我设法解决了这个问题,尽管我不完全确定如何解决。

我学到的东西:

  • 确保所有依赖项都是最新版本,不要在 5.7.x 上运行某些东西,在 5.5.x 上运行其他东西

  • 使用 sudo 执行 yum即使以 root 身份登录也非常重要,否则文件权限似乎没有正确设置

  • 删除 /var/lib/mysql 的内容并运行sudo mysqld --initialize重置所有内容

  • 当 MySQL 服务器重新初始化时,它会随机为 root 用户生成一个临时密码,该密码会保存到日志文件中。我不确定为什么第一次安装时没有设置密码,也许是因为我使用的是旧版本的 MySQL 服务器

  • 删除/usr/share/mysql不是一个好主意,因为出于某种原因,其中的 errmsg.sys 文件很难重新安装。

  • 当尝试使用 --init-file 重置您的 root 密码时,请确保您设置的密码符合当前密码策略要求。

希望该列表中的内容能够对其他人有所帮助。

相关内容