MACOS中忘记MySQL root密码的解决方案

 更新时间:2017年03月23日 08:44:29   作者:charsdavy  
这篇文章主要向大家讲述的是在MAC系统中MySQL重设root密码的实际操作步骤,在实际操作中忘记MySQL root密码时常会发生的,下面就是本教程的详细内容介绍。

MySQL 是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。

MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

Mac 安装完 MySQL 之后,软件会生成一个默认密码给我们。但是,当我使用Navicat来建立连接是却提示密码失效,无奈,只能修改数据库默认密码。

接下来,记录整个root密码修改过程。

在开始下面的步骤之前必须先停止mysql服务!

 cd /usr/local/mysql/bin/
 sudo su
 ./mysqld_safe --skip-grant-tables & //这一步的作用是跨过权限验证
 ./mysql -uroot //以root身份登录,因为第三步的原因不需要密码了。这之后的命令就不需要在前面加./mysql了
 use mysql;
 update user set authentication_string='123456' where User='root';

网上流传的版本全部是set password =‘’ ,这样写一直报错说 ‘password’列不存在!

最终用sql命令查出来只有authentication_string字段,并没有password字段。

上一步执行之后本来以为已经可以登录了,可是navicat连接测试时出现了:

ERROR 1862 (HY000): Your password has expired. To log in you must
change it using a client that supports expired passwords.

所以还需要下面步骤

 cd /usr/local/mysql/bin/
 sudo su
 ./mysql -uroot -p123456
 set password = password('123456')

用户名:root,密码:12345

修改成功

补充:虽然上面成功修改,但还是走了不少弯路,上文只是记录整个过程,下面我们把最简单有效的方法来总结下

这个过程是心酸的,网上的资料多如狗,关键是各有各的错法,尝试了半天没一个对的,在即将打破心理防线,要去翻MySQL文档的时候,我改成功了。没有一个文章告诉我完整的答案,我是参考了好几个攻略,闭门造出来的车。给自己点赞。废话不多说,一步一步跟我走。

1.关闭mysql服务器

sudo /usr/local/mysql/support-files/mysql.server stop


也可以在系统偏好里有个MySQL里关闭。

2.cd /usr/local/mysql/bin    进入目录

3.sudo su 获取权限

4. ./mysqld_safe --skip-grant-tables & 重启服务器

5.重开个终端,

配置短命令:

alias mysql=/usr/local/mysql/bin/mysql

6.输入mysql 进入mysql命令模式

7.use mysql进入mysql数据库

8.flush privileges;大概就是获取权限,要不他不让你改。

9.set password for 'root'@'localhost'=password('新密码'); 完成修改

10.终于改完了。

好了,方法教给大家了,希望对大家能够有所帮助

相关文章

  • MySQL之表连接方式(内连接与外连接)

    MySQL之表连接方式(内连接与外连接)

    这篇文章主要介绍了MySQL之表连接方式(内连接与外连接),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • MySQL数据库中外键(foreign key)用法详解

    MySQL数据库中外键(foreign key)用法详解

    这篇文章主要给大家介绍了关于MySQL数据库中外键(foreign key)的相关资料,MySQL 外键约束可以用来保证表与表之间的关系完整性,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-10-10
  • linux安装两个mysql(8.0和5.7),并同时使用方式

    linux安装两个mysql(8.0和5.7),并同时使用方式

    这篇文章主要介绍了如何在CentOS 7上下载和安装MySQL 8.0和MySQL 5.7.30,并详细描述了安装步骤,包括解压、配置、初始化和启动等过程
    2024-12-12
  • MySQL中replace into与replace区别详解

    MySQL中replace into与replace区别详解

    本文主要介绍了MySQL中replace into与replace区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • navicat连接mysql时出现1045错误的解决方法

    navicat连接mysql时出现1045错误的解决方法

    这篇文章主要为大家详细介绍了navicat连接mysql时出现1045错误的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • MySQL分表自动化创建的实现方案

    MySQL分表自动化创建的实现方案

    在数据库应用场景中,随着数据量的不断增长,单表存储数据可能会面临性能瓶颈,例如查询、插入、更新等操作的效率会逐渐降低,分表是一种有效的优化策略,它将数据分散存储在多个表中,从而提高数据库的性能和可维护性,本文介绍了MySQL分表自动化创建的实现方案
    2025-01-01
  • MySQL详细讲解变量variables的用法

    MySQL详细讲解变量variables的用法

    MySQL系统变量(system variables)实际上是一些系统参数,用于初始化或设定数据库对系统资源的占用,文件存放位置等等,本篇文章我们来探究一下variables
    2022-06-06
  • Mysql临时变量的具体使用

    Mysql临时变量的具体使用

    本文主要介绍了Mysql临时变量的具体使用,临时变量有分为用户变量和会话变量,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • MySQL密码策略管理插件validate_password用法详解

    MySQL密码策略管理插件validate_password用法详解

    自MySQL5.6起,引入validate_password插件,用于密码长度和强度管理,在MySQL8.0中,该插件通过服务器组件重新实现,插件默认不允许密码为用户名,可设定最小长度和强度等级,还可要求密码包含数字、大小写字母和特殊字符
    2024-11-11
  • windows上的mysql服务突然消失提示10061 Unkonwn error问题及解决方案

    windows上的mysql服务突然消失提示10061 Unkonwn error问题及解决方案

    windows10 系统,今天早晨系统自己更新了下,也没啥问题,突然发现电脑上安装的mysql 服务没了,经过一系列原因分析终于找到解决方案,今天小编给大家分享mysql服务突然消失:10061 Unkonwn error解决方法,一起看看吧
    2023-07-07

最新评论