Mysql8 忘记Root密码(转)

第一步:修改配置文件免密码登录mysql

vim /etc/my.cnf

1.2 在 [mysqld]最后加上如下语句 并保持退出文件;

skip-grant-tables

1.3 重启mysql服务:

service mysqld restart

第二步免密码登录到mysql上;直接在命令行上输入:

  1. mysql

  2.  

    //或者

  3.  

    mysql -u root -p

  4.  

    //password直接回车

第三步: 给root用户重置密码;

3.1 首先查看当前root用户相关信息,在mysql数据库的user表中;

select host, user, authentication_string, plugin from user;

host: 允许用户登录的ip‘位置’%表示可以远程;

user:当前数据库的用户名;

authentication_string: 用户密码;在mysql 5.7.9以后废弃了password字段和password()函数;

plugin: 密码加密方式;

3.2 如果当前root用户authentication_string字段下有内容,先将其设置为空;

  1. use mysql;

  2.  

    update user set authentication_string=‘‘ where user=‘root‘;

3.3 退出mysql, 删除/etc/my.cnf文件最后的 skip-grant-tables 重庆mysql服务;

3.4 使用root用户进行登录,因为上面设置了authentication_string为空,所以可以免密码登录;

  1. mysql -u root -p

  2.  

    passwrod:直接回车;

3.5使用ALTER修改root用户密码;

 ALTER user ‘root‘@‘localhost‘ IDENTIFIED BY ‘Qian123#‘

至此修改成功; 从新使用用户名密码登录即可;

修改中遇到的问题:

1. 根据网上的这篇文章进行修改,报错;

网友文章:Linux-CentOS7下修改root密码和密码过期问题

在使用这句话修改密码时报错:

  1. update user set password = password(‘new-password‘) where user = ‘root‘ ;

  2.  

  3.  

    or

  4.  

  5.  

    update user set authentication_string= password(‘new-password‘) where user = ‘root‘ ;

报错原因:mysql5.7.6以后废弃了user表中的password字段和 password() 方法;

所以上面的方法对 mysql8.0.1是行不通的;

2. 根据网友的这篇文章进行修改,报错;

网友文章: 修改MySQL 5.7.9版本的root密码方法以及一些新变化整理

3. 参考MYSQL8的官网文档, 感觉写的也很水;

MySQL8官网文档: mysql8.0 reference for manual

4. 一定不要采取如下形式该密码:

  1. use mysql;

  2.  

    update user set authentication_string="newpassword" where user="root";

这样会给user表中root用户的authentication_string字段下设置了newpassword值;

当再使用ALTER USER ‘root‘@‘localhost‘ IDENTIFITED BY ‘newpassword‘时会报错的;

因为authentication_string字段下只能是mysql加密后的41位字符串密码;其他的会报格式错误;

*THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE

原文地址:https://www.cnblogs.com/likui360/p/9627698.html

时间: 2024-08-30 17:49:54

Mysql8 忘记Root密码(转)的相关文章

MySQL忘记root密码后修改

MySQL忘记root密码后可以使用下面的方法修改. 1.登录MySQL所在的服务器,手工kill掉MySQL进程 kill `cat $mysql_data_dir/hostname.pid` $mysql_data_dir/hostname.pid为MySQL数据目录,它记录了MySQL服务的进程号. [[email protected] ~]# ps -ef |grep mysql root      6602     1  0 21:39 ?        00:00:00 /bin/s

Linux下使用MySQL——忘记root密码及修改MySQL默认编码

概述: 本博客不再对MySQL的语法进行讲解和说明,想了解或熟悉的朋友请自行百度或Google学习.本博客主要是针对MySQL除语法之外的总结,希望能够也能帮助到你. 1.CentOS6.x下MySQL忘记root密码解决方法 Ⅰ. 修改MySQL的登录设置 # vim /etc/my.cnf 在[mysqld]段中加上一句:skip-grant-tables Ⅱ. 重启服务 # service mysqld restart Ⅲ. 登录Mysql,修改密码信息 # mysql mysql> US

Redhat_Linux忘记root密码解决办法

在出现系统选择界面时,使用UP或者down键,进入到选择界面. 在Red Hat Linux的选项上按"e"键,然后会出现三个选项,在"kernel/boot/vmlinuz-2.4.18-14 ro root=LABEL=/"上按"e"键进行编辑在"ro"或者"root"前加上"single",然后回车返回. 我的做法如下: "kernel/boot/vmlinuz-2.4.

linux下mysql忘记root密码怎么办

Linux下MySQL忘记root密码怎么办? Linux下MySQL忘记root密码怎么办? 1. 修改MySQL配置文件 默认MySQL的配置文件为/etc/my.cnf,在[mysqld]下面添加一行 1.skip-grant-tables 2. 保存配置文件,重启MySQL服务 1.service mysqld restart 3. 再次进入MySQL 1.[[email protected] mysql]$ mysql -u root -p2.Enter password: #此处直接

干货----004----MySQL忘记root密码怎么办?

MySQL忘记root密码怎么办? MySQL忘记root密码怎么办?一般情况下会有两种思路:找回密码和重置密码.在实际的工作中,MySQL数据库忘记root密码一般采用重置密码的办法去解决.下面就看看在Linux下和在Windows下重置root密码的步骤. Windows下MySQL忘记root密码怎么办?1.以系统管理员身份登陆系统,启动mysql跳过权限检查.d:\mysql\bin\mysqld-nt –skip-grant-tables 2.进到d:\mysql\bin下,使用mys

Linux下忘记root密码怎么办?

1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库. 因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的 状态下,其他的用户也可以任意地登录和修改MySQL的信息.可以采用将MySQL对 外的端口封闭,并且停止Apache以及所有的用户进程的方法实现服务器的准安全 状态.最安全的状态是到服务器的Console上面操作,并且拔掉网线. 2.修改MySQL的登录设置: # vim /etc/my.cnf 在[mysqld]的段中加上一句:s

MySQL忘记root密码后的处理

创建root管理员: mysqladmin -u root password 123456 然后乱输密码会出现如下情况 [[email protected] ~]# mysql -u root -pEnter password: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 解决方法 1.停止mysqld服务 [[email protected] ~]# service mys

mysql忘记root密码连接本地库

今天想做个小项目,决定用mysql数据库,但是好久没用mysql了,也忘掉了当时建库时root密码是什么了,找到了一篇文章,在这里记录下. Windows下mysql忘记root密码的解决方法: Mysql版本:5.1.55-community MySQL Community Server (GPL) 1. 首先检查mysql服务是否启动,若已启动则先将其停止服务,可在开始菜单的运行,使用命令: net stop mysql 或者在windows任务管理器中结束mysqld.exe进程,或者在控

忘记root密码

如果忘记root密码或其他用户密码,不要急,按下面操作即可.1. 编辑mysql主配置文件 my.cnfvim /etc/my.cnf   在[mysqld]字段下添加参数  skip-grant  2. 重启数据库服务service mysqld restart3. 这样就可以进入数据库不用授权了mysql -uroot4. 修改相应用户密码use mysql;update user set password=password('your password') where user='root