MACOS中忘记MySQL root密码的解决方案
MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软件。
MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。
Mac安装完MySQL之后,软件会生成一个默认密码给我们。但是,当我使用Navicat来建立连接是却提示密码失效,无奈,只能修改数据库默认密码。
接下来,记录整个root密码修改过程。
在开始下面的步骤之前必须先停止mysql服务!
cd/usr/local/mysql/bin/ sudosu ./mysqld_safe--skip-grant-tables&//这一步的作用是跨过权限验证 ./mysql-uroot//以root身份登录,因为第三步的原因不需要密码了。这之后的命令就不需要在前面加./mysql了 usemysql; updateusersetauthentication_string='123456'whereUser='root';
网上流传的版本全部是setpassword=‘',这样写一直报错说‘password'列不存在!
最终用sql命令查出来只有authentication_string字段,并没有password字段。
上一步执行之后本来以为已经可以登录了,可是navicat连接测试时出现了:
ERROR1862(HY000):Yourpasswordhasexpired.Tologinyoumust changeitusingaclientthatsupportsexpiredpasswords.
所以还需要下面步骤
cd/usr/local/mysql/bin/ sudosu ./mysql-uroot-p123456 setpassword=password('123456')
用户名:root,密码:12345
修改成功
补充:虽然上面成功修改,但还是走了不少弯路,上文只是记录整个过程,下面我们把最简单有效的方法来总结下
这个过程是心酸的,网上的资料多如狗,关键是各有各的错法,尝试了半天没一个对的,在即将打破心理防线,要去翻MySQL文档的时候,我改成功了。没有一个文章告诉我完整的答案,我是参考了好几个攻略,闭门造出来的车。给自己点赞。废话不多说,一步一步跟我走。
1.关闭mysql服务器
sudo/usr/local/mysql/support-files/mysql.serverstop
也可以在系统偏好里有个MySQL里关闭。
2.cd/usr/local/mysql/bin 进入目录
3.sudosu获取权限
4../mysqld_safe--skip-grant-tables&重启服务器
5.重开个终端,
配置短命令:
aliasmysql=/usr/local/mysql/bin/mysql
6.输入mysql进入mysql命令模式
7.usemysql进入mysql数据库
8.flushprivileges;大概就是获取权限,要不他不让你改。
9.setpasswordfor'root'@'localhost'=password('新密码');完成修改
10.我靠终于改完了。
好了,方法教给大家了,希望对大家能够有所帮助