今天第一次装了Mysql 5.7.9,本来是一件及其简单的事情,却没想到掉进了坑里。
我的系统Mac OS,mysql 版本是
mysql Ver 14.14 Distrib 5.7.9, for osx10.9 (x86_64) using EditLine wrapper
这个问题和系统应该没有太大关系。
Mysql5.7.9在安装完成之后,会随机生成一串密码,
正常来说,用这串密码就可以登陆到mysql了,谁知道出了1045错误。
这个问题我在Linux上也遇到过,解决起来很简单,毕竟是Mac OS,和Linux有点区别,
于是乎我就百度啊,找来一个解决方案:
cd /usr/local/mysql/bin/sudo su ./mysqld_safe --skip-grant-tables & 接下来可以直接登陆mysql并且不需要密码
mysql -u rootuse mysql;接下来就是这次的坑所在了,非5.7版本的mysql是这样重设root密码的:UPDATE user SET password=PASSWORD(’新密码’) WHERE User=’root’;但是如果你是5.7,那么这条重设密码的命令会报错,内容是说没有password字段。what?没有password字段?那密码存在哪里?
于是我查看了一下user表,发现有一个叫authentication_string的字段存着密码一样的东西,
于是上百度查了一下,果然如此,吐槽下百度上的相关资料真少,还是Google好。
所以对于5.7来说,正确的设置方法应该是:
UPDATE user SET authentication_string=PASSWORD(’新密码’) WHERE User=’root’;
FLUSH PRIVILEGES;然后就是重启了。Mac OS没有service命令,百度上我也查不出怎么重启mysql服务,于是我就杀进程啦:ps -ef|grep mysql相关进程统统杀掉(一般是两个),然后再正常启动。启动成功后登陆mysql试试:mysql -uroot -p输入密码后成功登陆啦!于是想查查表,结果又报了一个错:ERROR 1820 (HY000): You must reset your password using
ALTER USER statement before executing this statement.
好吧,那我再重设一次密码好了:SET PASSWORD = PASSWORD('新密码');欧耶,mysql可以正常使用了!PS:话说前面那个update密码如果直接用set password是不是可以呢?有兴趣的同学可以试一下。
本文记录了在MacOS系统中安装MySQL5.7.9遇到的问题及解决过程,包括解决1045错误、重置root密码的具体步骤及注意事项。
588

被折叠的 条评论
为什么被折叠?



