用到的命令和文件:
错误日志:/usr/local/mysql/data/carydeMBP.lan.err
忘记密码时,关闭mysql的密码登陆验证:mysqld_safe --skip-grant-tables &
查看进程:ps -ef | grep mysqld
设置系统环境:PATH="$PATH":/usr/local/mysql/bin/
关闭控制面板启动方式的mysql服务:launchctl unload -w /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
启动mysql服务器(好像没作用):launchctl load -w /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
先说下经历:
安装的是mysql官网上下载的dmg安装包。
安装路径在/usr/local/mysql
在控制面板上启动后,查看进程如下:
sh-3.2# ps -ef | grep mysqld
74 4184 1 0 3:59上午 ?? 0:00.35 /usr/local/mysql/bin/mysqld --user=_mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/usr/local/mysql/data/mysqld.local.err --pid-file=/usr/local/mysql/data/mysqld.local.pid
0 4237 2607 0 4:01上午 ttys000 0:00.01 grep mysqld
sh-3.2#
似乎没有指定默认的配置文件路径,想必是启用的默认参数值。
这时想登陆mysql发现密码空和root都不行。
从网上找资料:
#Mac上重置mysql 5.7密码 >我的mac系统是osx 10.11 装完mysql5.7之前根本登录不上,网上说用DMG方式装完后,后弹出一个框,上面会有临时密码,但是我安装的时候却没有半点提示。试个好多方法都没有,终于在SO上找到了方法,贴出来希望能帮到大家。 1. 打开一个终端窗口 2. 输入 sudo /usr/local/mysql/support-files/mysql.server stop 3. 输入 sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables 4. 这时不要关窗口,再打开一个终端窗口 5. 输入 sudo /usr/local/mysql/bin/mysql -u root 6. 这时候会出现mysql>了,输入use mysql 7. 最后输入 update user set authentication_string=password('9527') where user='root'; 这就OK了。
按照他上面的操作,第一步就不行,关闭不来服务;
我是从控制面板来操作的,也不行,因为关闭的时候不知道密码啊。。。
不会截图不然来一张来。。。。
总之面板上操作服务开启的时候进行验证的账号和密码是数据库的,不是系统的,我之前在这里被坑了。
最后我这样关闭,哦不,是干掉服务的。
ps -ef | grep mysqld 命令查出进程ID,kill -9 进程id,可能有好几个进程,干掉有起来,
这时再用 launchctl unload -w /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist命令,
鬼知道这是什么命令,网上找的,发现有用。在看进程没有mysqld后台了。
接着按上面的教程第三步开始往下做就都可以了。
最后密码修改时可能遇到这个错误提示:
Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect.
鬼知道又是什么,网上找到的解决方法是执行如下命令:
SET SQL_SAFE_UPDATES = 0;
再执行修改密码的sql,成功之后涮新权限 flush privileges。
ok,还没完,我之前说的关闭服务的坑就在这里,我在控制面板去关闭服务,提示输入账号密码,我输了系统的,结果导致我以为之前的操作密码修改没有生效。于是我就用一开始办法干掉进程,再修改密码,发现又不行,鬼tm知道我经历了什么。。。。
幸运的是,后来冷静下来发现这个坑,关闭和启动服务时,提示输入的是数据库的账号密码。
然后发现其实安装这么简单,我却搞了几天。哎。。。。。。。。
总结:
1、输入账号密码时一定要想清楚,程序要你输入的是什么上下文环境下的密码;
2、mysql7的mysql.user的密码字段不是之前的password了,改为authentication_string,密码使用函数加密:password('9527');
3、mysql服务的管理命令到底是什么,我到现在还没理清,感觉有好几种,但关闭服务的方式最直接的就是干掉进程。
4、出现登陆失败,一定要去仔细看错误日志,耐心看,用错误日志的描述去google,效率比较高。