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 root@localhost=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/