mac下忘记mysql密码并重置

时间:2021-03-28 00:32:54
终端启停mysql
启动MySQL服务 sudo /usr/local/MySQL/support-files/mysql.server start
停止MySQL服务 sudo /usr/local/mysql/support-files/mysql.server stop
重启MySQL服务 sudo /usr/local/mysql/support-files/mysql.server restart
注意:原来skip-grant-tables的终端要关闭,最好在kill掉mysql进程;
  
step1:
苹果->系统偏好设置->最下边点mysql 在弹出页面中 关闭mysql服务(点击stop mysql server)
step2:
进入终端输入:cd /usr/local/mysql/bin/
回车后 登录管理员权限 sudo su
回车后输入以下命令来禁止mysql验证功能 ./mysqld_safe --skip-grant-tables &
回车后mysql会自动重启(偏好设置中mysql的状态会变成running)
step3. 
输入命令 ./mysql
回车后,输入命令 FLUSH PRIVILEGES; 
因为现在是新版本8.0了 ,老版本的修改密码的语法已不再适用,mysql 5.7.9以后废弃了password字段和password()函数;
回车后,原版本命令: SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123');目前已不可用,新版本:ALTER user 'root'@'localhost' IDENTIFIED BY '你的新密码';
 
命令总结如下:
cd /usr/local/mysql/bin/
sudo su
./mysqld_safe --skip-grant-tables &
./mysql
FLUSH PRIVILEGES;
ALTER user 'root'@'localhost' IDENTIFIED BY '123'; //注意,这里的密码要用包含8位大写+小写+特殊字符+数字

mysql启动参数 skip-grant-tables

非常有用的mysql启动参数—— --skip-grant-tables。 顾名思义,就是在启动mysql时不启动grant-tables,授权表。有什么用呢?当然是忘记管理员密码后有用。
 在mysql.cnf 配置文件中加上skip-grant-tables,然后重启mysql服务
    操作方法:
    1、mysql.cnf 配置文件中加上skip-grant-tables
 2.  重启mysql服务 , sudo service mysql restart
 3. mysql 直接连接进入客户端