MySQL忘记密码了怎么办(完整解决步骤)

Posted 骑猪兜风~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL忘记密码了怎么办(完整解决步骤)相关的知识,希望对你有一定的参考价值。

环境:

系统Windows 10
mysql-8.0

操作步骤:

  1. 停止MySQL服务。
    net stop MySql80

  2. 打开mysql.exe和mysqld.exe所在的文件夹,复制路径地址 

  3. 跳过MySql密码验证登录服务,打开命令窗口cmd,进入mysql安装目录下的bin目录,然后输入如下命令:

    //8.0版本以下有效
    mysqld --skip-grant-tables
    
    //mysqld –skip-grant-tables实测在mysql8.0中已失效,使用如下命令
    mysqld --console --skip-grant-tables --shared-memory
  4. 如果正常执行的话就不能输入了,需要重新打开一个cmd命令窗口,输入mysql命令就可以直接登录了,跳过了密码验证过程。

     

  5. 如果不正常执行,那么就需要检查一下你的mysql路径下的文件了,是否缺少data和my.ini这两个文件。

     

  6. 接下来我们需要先删除自己的mysql服务。

    //根据自己的服务改成相应的名字
    sc delete MySql80

  7. 接下来新建my.ini配置文件代码如下:

    //简易版
    [mysql]
    default-character-set=utf8
    [mysqld]
    default-storage-engine=INNODB
    basedir=C:/Program Files/MySQL/MySQL Server 8.0
    datadir=C:/Program Files/MySQL/MySQL Server 8.0/data
    //复杂版
    # For advice on how to change settings please see
    # http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
    # *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
    # *** default location during install, and will be replaced if you
    # *** upgrade to a newer version of MySQL.
    [client]
    default-character-set = utf8mb4
    [mysql]
    default-character-set = utf8mb4
    [mysqld]
    character-set-client-handshake = FALSE
    character-set-server = utf8mb4
    collation-server = utf8mb4_bin
    init_connect='SET NAMES utf8mb4'
    # Remove leading # and set to the amount of RAM for the most important data
    # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
    innodb_buffer_pool_size = 128M
    # Remove leading # to turn on a very important data integrity option: logging
    # changes to the binary log between backups.
    # log_bin
    # These are commonly set, remove the # and set as required.
    basedir = C:\\Program Files\\MySQL\\MySQL Server 8.0
    datadir =  C:\\Program Files\\MySQL\\MySQL Server 8.0\\data
    port = 3306
    # server_id = .....
    # Remove leading # to set options mainly useful for reporting servers.
    # The server defaults are faster for transactions and fast SELECTs.
    # Adjust sizes as needed, experiment to find the optimal values.
    join_buffer_size = 128M
    sort_buffer_size = 16M
    read_rnd_buffer_size = 16M
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

    其中basedir和databir记得改成自己mysql安装目录的路径。

  8. 接着打开cmd窗口,在mysql的bin目录下执行如下语句:

    mysqld --initialize-insecure --user=mysql

    会自动生成data文件夹。接着再输入如下命令:

    //后面的路径改成自己的ini文件的路径,这个操作是安装MySql服务,同时设置绑定my.ini配置文件
    mysqld --install "MySql80" --defaults-file="C:\\Program Files\\MySQL\\MySQL Server 8.0\\my.ini"

    最后打开MySql服务。

    net start MySql80

  9. 此时再重新登录mysql 会发现不需要密码就可以登录了,输入更改代码命令 改成你不会忘记的密码即可。

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
     

mysql忘记密码,如何修改

Windows下mysql忘记密码怎么办?

  • 时隔半个月,我终于又开始操刀mysql,但是不小心砍到了我的脑子,密码什么的我全都忘了,结果,你懂的。。。所以,今天我就总结了一下网上的解决方法以及我自己的解决方法的一些心得。

 

方法一:免密码进入mysql再修改密码

  步骤一:找到mysql安装目录下的配置文件,一般是my.ini。并在[mysqld]这一项的下方,添加 skip-grant-tables,然后保存文件。操作如下:1597027070380

 

  步骤二:重启mysql服务, 可以通过:在我的电脑上右键–>服务–>找到mysql服务进行重启。

 

  步骤三:免密登录,进入终端, 敲入 mysql -u root -p 命令然后回车 ,这时候就可以直接进入了

 

  步骤四:修改成为自己的密码,在终端输入 set password for \'username\'@\'host\' = password(\'newpassword\')就好。

  注意事项:如果在输如mysql -u root -p后,显示如下图:

这表明还没有启动mysql数据库。在我的电脑上右键–>服务–>找到mysql服务进行启动就好。或者直接在终端输入net start mysql也可以启动。

 

 

方法二:遇事不决,重装解决。

前言:如果你有之前mysql的压缩包,重装其实也是很好解决的,相比其他方法,“后遗症”相对少很多。

  步骤一:关闭mysql服务,我的电脑上右键–>服务–>找到mysql服务,并关闭服务,操作如下:

注意:我这里是将mysql数据文件放到了F盘的MySQLsoft文件下的,删除的时候将该文件夹里面的内容删除就好,MySQLsoft文件不用删除,因为到时候解压MySQL压缩包的时候以及路径仍然是在这个目录下进行操作。如果这个时候文件还是删除不了,重启电脑,再次进行上述的操作就好。

 

  步骤二:解压mysql压缩包,并在目录下添加my.ini文件,并在其中填入初始化内容。操作如下:

右侧内容,文本形式如下:(注意:下面的设置mysql安装目录还有data存放目录需要改成mysql文件存放目录)

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=F:\\MySQLsoft\\mysql-8.0.20-winx64
# 设置mysql数据库的数据的存放目录
datadir=F:\\MySQLsoft\\mysql-8.0.20-winx64\\data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8

 

 

  步骤三:在搜索栏输入cmd,在命令提示符上右键以管理员的身份运行,并按照如下顺序输入即可:(如果之前配置过,那么前两步可以省去)

  1. 输入mysqld --initialize-insecure --user==mysql,正在初始化,稍等一会儿就行

  2. 输入mysqld -install(安装过的话可以不用安装)

  3. 输入net start mysql,启动mysql服务

  4. 输入mysql -u root -p,不用输入密码,直接回车

  5. 出现mysql>表示配置成功。

  6. 输入alter user user() identified by "密码";即可

 

 

上述就是我如何解决mysql忘记密码的问题了,还有就是快速修改法,本文参考如下:

https://blog.csdn.net/lisongjia123/article/details/57418989?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.channel_param

 

以上是关于MySQL忘记密码了怎么办(完整解决步骤)的主要内容,如果未能解决你的问题,请参考以下文章

mysql忘记密码,如何修改

mysql 忘记密码,重置密码,mysql.user表为空的解决办法

Mysql忘记密码处理办法

MAC MYSQ忘记密码重置方法

忘记MySQL的root密码的解决方法

忘记mysql的root用户密码怎么办