mac 忘记mysql密码

嘿,说到在 Mac 上忘记 MySQL 密码该怎么办,这并不是我第一次遇到这种情况。
我曾经有一个朋友在他的 Mac 上丢失了 MySQL 密码,这是一次重大紧急情况。
说实话,这个问题处理起来还是有点复杂,但也不是不可能解决。

首先您需要停止MySQL服务。
打开终端,输入以下命令: sudo /usr/local/mysql/support-files/mysql.server stop,然后输入管理员密码。
这一步非常重要。
需要确认操作,否则MySQL服务不会停止。

停止服务后,可以重新启动MySQL,不过这次要跳过权限检查。
再次在终端中输入命令,这次:sudo mysqld_safe --skip-grant-tables。
运行此命令后,终端将开始提供日志信息。
此时不要快速关闭窗口,否则MySQL服务可能会异常关闭。

然后,打开另一个终端窗口并使用此命令登录 MySQL,因为现在没有密码验证:mysql -u root。
成功登录后,您需要更改密码。
如果您使用 MySQL 5 .7 及更早版本,您可以编写以下命令来更改密码: UPDATE mysql.user SET Password=PASSWORD('new_password') WHERE User='root';。
请记住将 new_password 替换为您想要的新密码。

如果您使用的是 MySQL 8 .0 及更高版本,则命令应更改为:ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';。
更改密码后,不要忘记更新权限表,使用此命令:FLUSH PRIVILEGES;。
然后可以输入quit退出MySQL客户端。

接下来需要重新启动MySQL服务。
返回到最初启动MySQL服务的终端窗口,按Ctrl+C杀死mysqld_safe进程,然后输入以下命令正常重新启动服务:sudo /usr/local/mysql/support-files/mysql.server start。

最后,您需要检查更改密码的结果。
尝试使用新密码登录:mysql -u root -p。
输入您的新密码。
如果成功登录命令行界面,则说明密码重置成功。

注意:操作前最好备份MySQL数据目录,一般在/usr/local/mysql/data,避免数据丢失。
如果MySQL是使用Homebrew安装的,命令可能会略有不同,例如使用brew services stop mysql来停止服务。
更改密码后,不要忘记更新所有依赖 MySQL 的应用程序的配置。
这样你就永远不会遇到忘记 MySQL 密码的问题。

mysql忘记密码,如何修改

坦白说,忘记MySQL密码有两种情况。
一种是您丢失密码,另一种是系统丢失您的密码。
前者可以通过跳过认证表来解决,后者最安全的方式是重新安装。

我们先来说说最重要的事情。
省略权限表。
去年我们在那个项目上尝试过。
您可以通过将 Skip-grant-tables 直接添加到 my.ini 来避免验证。
我记得datadir目录下有一个mysql.user文件。
更改密码后,您必须手动覆盖此文件才能生效。
老实说,这很令人困惑。
还有一点是,使用net start mysql重新启动一个服务比右键该服务要快3 秒,假设系统没有停止该服务。
起初我以为重新启动可以修复它,但后来我意识到后台进程挂起,我必须使用 mysqld --initialize 疯狂地初始化它。
还有另一个重要的细节。
如果mysql-uroot -p直接报错,说明mysqld没有运行。
按 Ctrl+C 退出错误消息并重新开始可以节省大量时间。

等一下,还有一件事。
设置密码时为“root”@“localhost”=“newpass”。
必须添加identified by,因为会报语法错误。
很多人不重视这一点。

下次建议您打包备份my.cnf和data目录,重装时直接替换。
比一一改变参数容易1 0倍。

mysql密码忘了怎么查看

MySQL密码可以通过跳过权限表来重置。

使用命令停止服务并区分系统。
Debian/Ubuntu:sudo 服务 mysql 停止。
CentOS/RHEL:sudo systemctl stop mysqld。

启动MySQL跳过权限验证。
命令:sudo mysqld_safe --skip-grant-tables &。

无需密码即可登录MySQL。
命令:mysql -u root。
无法连接? 服务未启动。

切换系统数据库以重置密码。
MySQL 5 .7 及以下版本: 使用使用mysql;。
更新用户设置密码=PASSWORD('新密码') where User='root'; 刷新权限;
MySQL 8 .0 及以上版本: 使用使用mysql;。
更新用户设置authentication_string='',其中User='root'; 首先清除密码和flush权限; 退出:退出; 再次登录(无密码)并更改密码: ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
重新启动 MySQL 服务。
Debian/Ubuntu:sudo 服务 mysql 重新启动。
CentOS/RHEL:sudo systemctl 重新启动 mysqld。

验证新密码。
命令:mysql -u root -p。
输入新密码以确认登录。

注意权限风险。
跳过权限表,所有用户都可以进行无密码访问。
操作完成后必须重新启动服务。

版本有差异。
MySQL 8 .0+ 使用authentication_string 字段。
需要使用 ALTER USER 来更改密码。

安全建议。
重置后检查账户是否异常。
从用户中选择用户、主机;
替代方案。
初始化数据目录以清除数据。
命令:sudo mysqld --initialize --user=mysql。
临时密码在日志中。
日志位置:sudo grep 'temporarypassword' /var/log/mysqld.log。

自己掂量一下。