最新消息:yaf表单扩展中新增加了浮点数、日期和集合的校验。php yaf框架扩展实践三——表单

mac os x忘记mysql 5.7.13 root密码

编程开发 591浏览 0评论

在mac下安装mysql 5.7.13的版本,一段时间没有使用,后来就忘记了密码。mysql忘记root密码有好多方法可以找回,这里介绍一种通用的方法:

  1. 关闭mysql进程
  2. 以安全模式启动启程
  3. root无密码连接到mysql
  4. 修改root密码,刷新缓存
  5. 关闭安全模式
  6. 重启mysql进程

不幸的是在这次找回密码的过程中踩了不少的坑,主要是原因是因为mysql版本引起的,mysql 5.7.6是个分水岭,下面以mac os x系统为示例详细分析一下。

关闭mysql进程

如果你是使用dmg包安装的,可以通过界面直接关闭:System Preferences -> 打开mysql选项:

mac-os-x系统mysql管理界面

mac-os-x系统mysql管理界面

如果实在找不到正常关闭的方法,也可以尝试暴力的方法,UNIX系统都可以通过ps命令找出相应的mysql服务进程,然后通过kill命令杀死。形如:

ps -ef | grep mysql
kill 进程号

以安全模式启动启程

mac os x系统下如果是用dmg包安装的mysql,可以在/usr/local/mysql找下找到相应的mysql文件、各种启动程序和管理工具。

$ cd /usr/local/mysql/bin
$ sudo ./mysqld_safe --skip-grant-tables --skip-networking &

–skip-grant-tables 表示忽略权限表;–skip-networking表示禁止网络连接,这个很有用,因为以安全模式启动后,就可以无密码连接mysql了。

root无密码连接到mysql

$ ./mysql -u root

正常来讲安全模式启动后就可以连接上了。

修改root密码,刷新缓存

连接上mysql后就可以进行密码修改了,前面都还顺利,这边被坑到了。按照传统的方式

mysql> use mysql;
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');

居然不行 !查看一下user表

mysql> select Host, User, Password from mysql.user;
ERROR 1054 (42S22): Unknown column 'Password' in 'field list'

字段Password不存在,估计就是版本的问题。早知道还是不要追求太新的版本了,用5.6的多好啊。o(╯□╰)o

上官方手册翻阅才发现5.7.5或者更早的版本才能用这个方法。5.7.6或者之后的版本要用alter命令:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

本以为这样应该就可以了,谁知道按照这个命令执行了一下,我去,还是不行。继续看手册,手册下面有提到如果前面还是不行,那么用了update修改语句:

mysql> UPDATE mysql.user SET authentication_string = PASSWORD('MyNewPass'), password_expired = 'N' WHERE User = 'root' AND Host = 'localhost';
Query OK, 1 row affected, 1 warning (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 1
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.03 sec)

这个终于可以了,肉流满面啊,/(ㄒoㄒ)/~~

参考mysql手册:http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

关闭安全模式

如果找不到正常的方式,可以通过ps找到相应的进程,然后直接kill。比较暴力,但也是一种方法。

重启mysql进程

接下来正常启动mysql进程就可以了,再用新密码连接就可以了。

转载请注明:快乐编程 » mac os x忘记mysql 5.7.13 root密码

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址