测试环境

  删除前

     mysql> select user,host,password from mysql.user;
+------+-----------+-------------------------------------------+
| user | host | password |
+------+-----------+-------------------------------------------+
| root | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | jinch | |
| root | 127.0.0.1 | |
| root | ::1 | |
| test | 10.0.0.% | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
    

删除root用户

 mysql> drop user root@'localhost';

为了测试,把其他root相关都删除了,命令就不一一展示了,显示结果。

   删除后

     mysql> select user,host from mysql.user;
+------+-----------+
| user | host |
+------+-----------+
| test | localhost |
+------+-----------+
1 row in set (0.00 sec)

退出再登陆

     [root@db01 ~]# mysql -uroot -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

  现在已经无法登陆了,之前误删过一次。。。无奈那会儿不知道如何解决,就只能重装了,但是,经过一段时间的学习,发现并不是没有解决办法的。

解决方法

  

  首先,关闭数据库

service mysqld stop

用安全模式设置开启免密登陆

  

mysqld_safe --skip-grant-tables --skip-networking &

--skip-grant-tables  关闭连接层的验证模块
     --skip-networking    关闭远程连接数据库(只允许本地登陆,可设置防火墙达到相同效果)

[root@jinch ~]# mysqld_safe --skip-grant-tables
     181010 16:57:03 mysqld_safe Logging to '/usr/local/mysql/data/jinch.err'.
     181010 16:57:04 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data

  然后使用mysql命令就可以直接进入数据库
    进入之后,使用insert 命令重新插入表
     

 mysql> insert into user(user,host,password,ssl_type,ssl_cipher,x509_issuer,x509_subject) values('root','localhost',PASSWORD('123'),'','','','');
   

PASSWORD大写的原因:在mysql中密码都是密文的,所以这里是调用一个函数,将明文加密成密文。
    然后退出重启一下数据库就可以重新使用账号密码登录了

     mysql> quit
Bye
[root@db01 ~]# /etc/init.d/mysqld restart
[root@db01 ~]# mysql -uroot -p123
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    

mysql>  --这边就放一部分啦,
  误删root用户无法登陆的解决就到这里啦

 

注意 如果成功后访问出现1142没有权限问题:

    

    mysql> select user,password from mysql.user;
ERROR 1142 (42000): SELECT command denied to user 'root'@'localhost' for table 'user'

看了一下报错信息,权限不够。。。那就是没有权限了
     退出数据库并且关闭mysql服务
     mysql> quit
     Bye
     安全模式启动mysql,root用户登录

     [root@db01 ~]# mysqld_safe --skip-grant-tables &
[root@db01 ~]# mysql -uroot -p123 mysql

  切换数据库&查看表信息中的root用户的localhost权限

 mysql> use mysql;
Database changed
mysql> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| event |
| func |
| general_log |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| innodb_index_stats |
| innodb_table_stats |
| ndb_binlog_index |
| plugin |
| proc |
| procs_priv |
| proxies_priv |
| servers |
| slave_master_info |
| slave_relay_log_info |
| slave_worker_info |
| slow_log |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+
28 rows in set (0.00 sec) mysql> select * from user where user='root' and host='localhost'\G;
*************************** 1. row ***************************
Host: localhost
User: root
Password: *23AE809DDACAF96AF0FD78ED04B6A265E05AA257
Select_priv: N
Insert_priv: N
Update_priv: N
Delete_priv: N
Create_priv: N
Drop_priv: N
Reload_priv: N
Shutdown_priv: N
Process_priv: N
File_priv: N
Grant_priv: N
References_priv: N
Index_priv: N
Alter_priv: N
Show_db_priv: N
Super_priv: N
Create_tmp_table_priv: N
Lock_tables_priv: N
Execute_priv: N
Repl_slave_priv: N
Repl_client_priv: N
Create_view_priv: N
Show_view_priv: N
Create_routine_priv: N
Alter_routine_priv: N
Create_user_priv: N
Event_priv: N
Trigger_priv: N
Create_tablespace_priv: N
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
plugin: mysql_native_password
authentication_string: NULL
password_expired: N
1 row in set (0.00 sec) ERROR:
No query specified

这里发现全部都是N ,表示root用户本地登陆没有权限
 修改root用户的localhost权限
    01.

update mysql.user set Grant_priv='Y',Super_priv='Y' where user='root';

flush privileges;

grant all on *.* to 'root'@'localhost';

下面这写行不用输入,上面命令的实质就是下面 的操作

mysql> update user set `Insert_priv` ='Y' where user='root' and host='localhost';

     mysql> update user set `Update_priv` ='Y' where user='root' and host='localhost';

     mysql> update user set `Delete_priv` ='Y' where user='root' and host='localhost';

     mysql> update user set `Create_priv` ='Y' where user='root' and host='localhost';

     mysql> update user set `Drop_priv` ='Y' where user='root' and host='localhost';

     mysql> update user set `Reload_priv` ='Y' where user='root' and host='localhost';

     mysql> update user set `Shutdown_priv` ='Y' where user='root' and host='localhost';

     mysql> update user set `Process_priv` ='Y' where user='root' and host='localhost';

     mysql> update user set `File_priv` ='Y' where user='root' and host='localhost';

     mysql> update user set `Grant_priv` ='Y' where user='root' and host='localhost';

     mysql> update user set `References_priv` ='Y' where user='root' and host='localhost';

     mysql> update user set `Index_priv` ='Y' where user='root' and host='localhost';

     mysql> update user set `Alter_priv` ='Y' where user='root' and host='localhost';

     mysql> update user set `Show_db_priv` ='Y' where user='root' and host='localhost';

     mysql> update user set `Super_priv` ='Y',`Create_tmp_table_priv` = 'Y' where user='root'' and host='localhost';

     mysql> update user set `Lock_tables_priv` ='Y' where user='root' and host='localhost';  

     mysql> update user set `Execute_priv` ='Y' where user='root' and host='localhost';

     mysql> update user set `Repl_slave_priv` ='Y' where user='root' and host='localhost';

     mysql> update user set `Repl_client_priv` ='Y' where user='root' and host='localhost';

     mysql> update user set `Create_view_priv` ='Y' where user='root' and host='localhost';

     mysql> update user set `Show_view_priv` ='Y' where user='root' and host='localhost';

     mysql> update user set `Create_routine_priv` ='Y' where user='root' and host='localhost'';

     mysql> update user set `Alter_routine_priv` ='Y' where user='root' and host='localhost';

     mysql> update user set `Create_user_priv` ='Y' where user='root' and host='localhost';

     mysql> update user set `Event_priv` ='Y' where user='root' and host='localhost';

     mysql> update user set `Trigger_priv` ='Y' where user='root' and host='localhost';

     mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

退出&重启&登陆

     mysql> quit
Bye
[root@jinch ~]# /etc/init.d/mysqld restart
Shutting down MySQL.. SUCCESS!
Starting MySQL.. SUCCESS!
[root@jinch ~]# mysql -uroot -p123

切换库

     mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A Database changed

#####  查看表信息

   mysql> select * from user\G;
*************************** 1. row ***************************
Host: localhost
User: root
Password: *23AE809DDACAF96AF0FD78ED04B6A265E05AA257
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: Y
Drop_priv: Y
Reload_priv: Y
Shutdown_priv: Y
Process_priv: Y
File_priv: Y
Grant_priv: Y
References_priv: Y
Index_priv: Y
Alter_priv: Y
Show_db_priv: Y
Super_priv: Y
Create_tmp_table_priv: Y
Lock_tables_priv: Y
Execute_priv: Y
Repl_slave_priv: Y
Repl_client_priv: Y
Create_view_priv: Y
Show_view_priv: Y
Create_routine_priv: Y
Alter_routine_priv: Y
Create_user_priv: Y
Event_priv: Y
Trigger_priv: Y
Create_tablespace_priv: N
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
plugin: mysql_native_password
authentication_string: NULL
password_expired: N
1 row in set (0.01 sec) ERROR:
No query specified

权限已经基本都有了
测试一下

mysql> create database jinc;
Query OK, 1 row affected (0.00 sec) mysql> select user,host from mysql.user;
+------+-----------+
| user | host |
+------+-----------+
| root | localhost |
+------+-----------+
1 row in set (0.00 sec) mysql> drop database jinc;
Query OK, 0 rows affected (0.00 sec)

MySQL误删root用户导致无法登陆解决方法的更多相关文章

  1. mysql误删root用户或者忘记root密码解决方法

    解决方法一: 到其他安装了Mysql的服务器(前提是要知道该服务器上Mysql的root用户密 码),打开[Mysql的安装目录/var/mysql],将其中的user.frm.user.MYD.us ...

  2. mysql误删root用户

    在操作mysql时误删除root用户,如何进行恢复 在安装hive时候误删除root用户,存在的用户没有权限,解决方法如下. 1.首先在/etc/my.cnf文件中 mysqlID下面添加 skip- ...

  3. 无法给MySQL root用户修改密码的解决方法

    本人编译安装完MySQL数据库,想给root用户修改密码,结果无法修改,并且报错,报错大概信息如下: mysqladmin: connect to server at 'localhost' fail ...

  4. MySQL使用root用户授权出现错误ERROR 1045 (28000) at line 2: Access denied for user 'root'@'%' (using password: YES)解决办法

    参考:https://blog.csdn.net/open_data/article/details/42873827 使用MySQL的root用户登录出现错误提示 ERROR 1045 (28000 ...

  5. MysqL的root用户不允许远程连接

    原文:MysqL的root用户不允许远程连接 今天程序报了异常:java.sql.SQLException: Access denied for user 'root'@'RJB-Z' (using ...

  6. 第三篇 ubuntu下,mysql 的root用户密码忘了怎么办?

    好长一段时间没有使用ubuntu了,今天进来玩玩,结果连mysql的root用户密码都忘记了.就上网找了一下,发现如下解决办法,试了一下,可行!记录在此,环境问题,是需要注意的. Ubuntu Ser ...

  7. mysql的root用户被删除, MySQL 服务无法启动 1067错误

    本文出现的问题有: 1, root(localhost) 用户被删除; 2, 在关闭mysql服务过后, 无法启动,出现1067错误; 我使用的mysql版本为5.6; mysql的安装路径: C:\ ...

  8. yum安装mysql后root用户的临时密码

    1.查看root用户临时随机密码 yum 安装mysql后,无法通过空密码登录数据库,如下: [root@ mysql]# mysql -u root -p Enter password: ERROR ...

  9. MySQL重置root用户密码的方法

    本教程适用于采用Win2003.WinXP操作系统的迅美VPS和云主机产品. 当管理员忘记MySQL密码怎么办?屡次输入密码,仍然提示错误,网站无法正常运行,数据库也无法管理,管理员束手无策. 网站程 ...

随机推荐

  1. 煤球数目——第七届蓝桥杯C语言B组(省赛)第一题

    原创 煤球数目 有一堆煤球,堆成三角棱锥形.具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),....如果一共有100层,共有多少个煤球? 请填 ...

  2. html manifest 离线配置

    HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问. 应用程序缓存为应用带来三个优势: 离线浏览 - 用户可在应用离线时使用它们 速度 - 已缓存资源加载 ...

  3. 警惕C#事件使用过程中的GC陷阱

    关于C#中的事件,园里已经有大量的文章对其内在实现做过剖析,如果还不甚了解的可以阅读这篇文章 通过Demo来细看C#事件的内在机制 虽然比较早,但非常清楚地展示了事件的内部机制,总结一下就是 1.事件 ...

  4. curl下载目录

    http://ftp.loongnix.org/os/loongnix/1.0/SRPMS/ wget wget -c -r -np -k -L -p

  5. centos7多节点部署redis4.0.11集群

    1.服务器集群服务器 redis节点node-i(192.168.0.168) 7001,7002node-ii(192.168.0.169) 7003,7004node-iii(192.168.0. ...

  6. spark执行例子eclipse maven打包jar

    首先在eclipse Java EE中新建一个Maven project具体选项如下 点击Finish创建成功,接下来把默认的jdk1.5改成jdk1.8 然后编辑pom.xml加入spark-cor ...

  7. Unity---简单单例模式的使用

    单例模式特点 1.一般用在一个脚本访问另一个脚本中的数据. 2.对于使用单例模式的类,系统中只会存在唯一一个实例,减少了内存开销. Unity中继承于MonoBehaviour的单例模式 public ...

  8. CF138D World of Darkraft

    $ \color{#0066ff}{ 题目描述 }$ n*m的格子,每个格子有字符'L','R',X',初始可以选择所有格子. 当选了 'L'的格子时,当前格子左下右上这条线上所有点不能选; 当选了 ...

  9. hdp 2.06 安装备忘

    1,官方安装说明文档 http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.0.6.0-Win/bk_installing_hdp_for_windo ...

  10. Anya and Cubes 搜索+map映射

    Anya loves to fold and stick. Today she decided to do just that. Anya has n cubes lying in a line an ...