当前位置: 代码迷 >> MySQL >> mac下安装Mysql5.7碰到默认密码的大坑
  详细解决方案

mac下安装Mysql5.7碰到默认密码的大坑

热度:301   发布时间:2016-05-05 16:28:09.0
mac下安装Mysql5.7遇到默认密码的大坑

哈哈,当时我装5.7也遇到过这样的情况

?

安装的过程很简单,就直接到官方下mysql dmg,一路下一步就可以装完.. ?

Mac Mysql dmg下载地址,http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.10-osx10.10-x86_64.dmg

但是带来的问题是,默认密码不为空… mysql -uroot -p 登陆不进去… 直接使用mysqladmin改密码也提示错误.

?

一般在centos下安装Mysql 5.7版本后,密码应该是放在 ~/.mysql_secret文件里,但是Mac呢 ?各翻遍了所有目录都没找到… 一顿狂Google之后,发现不少老外也在纠结这个问题… ? 这算不算个坑…

?

?

?

?

?

那么密码跑哪里去了? ?不纠结了,直接把密码干掉,重新配置个自己知道的.?

?

通过?–skip-grant-tables的方式启动mysqld_safe ,这个模式可以绕过mysql授权.

sudo /usr/local/mysql/bin/mysqld_safe –skip-grant-tables

mysql5.7颠覆的事情太多了,已经mysql.user会有个password字段,现在替换成authentication_string了.?

| authentication_string ?| text ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?| YES ?| ? ? | NULL ? ? ? ? ? ? ? ? ?| ? ? ? |
| password_expired ? ? ? | enum(‘N’,'Y’) ? ? ? ? ? ? ? ? ? ? | NO ? | ? ? | N ? ? ? ? ? ? ? ? ? ? | ? ? ? |
| password_last_changed ?| timestamp ? ? ? ? ? ? ? ? ? ? ? ? | YES ?| ? ? | NULL ? ? ? ? ? ? ? ? ?| ? ? ? |
| password_lifetime ? ? ?| smallint(5) unsigned ? ? ? ? ? ? ?| YES ?| ? ? | NULL ? ? ? ? ? ? ? ? ?| ? ? ? |
| account_locked ? ? ? ? | enum(‘N’,'Y’) ? ? ? ? ? ? ? ? ? ? | NO ? | ? ? | N ? ? ? ? ? ? ? ? ? ? | ? ? ? |
+————————+———————————–+——+—–+———————–+——-+

mysql> update mysql.user set authentication_string=PASSWORD(’123123′) where user=’root’;
Query OK, 1 row affected, 1 warning (0.04 sec)
Rows matched: 1 ?Changed: 1 ?Warnings: 1

mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)

mysql>

这时候Myqsl密码已经修改完了,我们把上面的mysqld进程干掉,通过正常途径起Mysqld服务

mysql -uroot -p

mysql>
mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql>
mysql> set password for [email protected]=password(’123123′);
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> show databases;
+——————–+
| Database ? ? ? ? ? |
+——————–+
| information_schema |
| mysql ? ? ? ? ? ? ?|
| performance_schema |
| sys ? ? ? ? ? ? ? ?|
+——————–+
4 rows in set (0.01 sec)

mysql>

?

当你通过skip授权修改的密码,需要再次修改下密码. 也不知道为什么有这个要求,闲的.

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

?

这样Mysql的密码改完了, 另外我已经给Mysql发了一个邮件说明了这个问题,不知道他们是否会给与回复. ? ?

?

转自:http://xiaorui.cc/2016/01/20/mac%E4%B8%8B%E5%AE%89%E8%A3%85mysql5-7%E9%81%87%E5%88%B0%E9%BB%98%E8%AE%A4%E5%AF%86%E7%A0%81%E7%9A%84%E5%A4%A7%E5%9D%91/

  相关解决方案