文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

关于mysql中root权限丢失的问题

2024-04-02 19:55

关注
刚听一哥们说执行了一条语句:revoke all on *.* from root@localhost;            --呵呵,当时到底是怎样的心理活动,这是怎样的恨。。。
于是小菜就做了一个实验,心里感觉应该和密码丢失后跳过权限重新设置密码的解决方法是一样的,当然这只是思路,试试才知道。
首先停止数据库[root@mysql ~]#service mysql3306 stop                              --因为忘记密码所以只能停止服务的方式关闭数据库
Shutting down MySQL.                                       [  OK  ]
[root@mysql ~]#
[root@mysql ~]# /usr/local/mysql/bin/mysqld_safe  --defaults-file=/usr/local/mysql/etc/my.cnf  --skip-grant-tables &                         --跳过校验密码的方式启动数据库[2] 11254
[root@mysql ~]# 160330 16:56:22 mysqld_safe Logging to '/usr/local/mysql/log/err3306.log'.
160330 16:56:22 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data

[root@mysql ~]# ps -ef | grep mysql                                               --查看数据库已然启动
root      11254   6904  0 16:56 pts/2    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --skip-grant-tables
mysql     11771  11254  0 16:56 pts/2    00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --skip-grant-tables --log-error=/usr/local/mysql/log/err3306.log --pid-file=/usr/local/mysql/data/mysql.lz.com.pid --socket=/usr/local/mysql/mysqld3306.sock --port=3306
root      11795   6904  0 16:57 pts/2    00:00:00 grep mysql
[root@mysql ~]# /usr/local/mysql/bin/mysql --socket=/usr/local/mysql/mysqld3306.sock --port=3306                   --不指定用户和密码直接登录数据库
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.17-log Source distribution

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> select user();                                                --默认为root用户登录
+--------+
| user() |
+--------+
| root@  |
+--------+
1 row in set (0.00 sec)

root@master 08:41:31 >grant all on *.* to 'root'@'localhost';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement  
在网上找到解决方法:

这个时候我们只需要

flush privileges 一下,在添加用户就OK了,

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

root@master 08:45:59 >grant all on *.* to 'ivan'@'localhost' identified by 'mysql321'  with grant option;
Query OK, 0 rows affected (0.01 sec)

root@master 08:46:24 >flush privileges;
Query OK, 0 rows affected (0.01 sec)

root@master 08:46:31 >quit
Bye
[root@mysql data]# service mysql3306 stop
Shutting down MySQL..160409 08:46:39 mysqld_safe mysqld from pid file /usr/local/mysql/mysql3306.pid ended
                                                           [  OK  ]
[1]+  Done                    /usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/etc/my.cnf --skip-grant-tables
[root@mysql data]# ps -ef  |grep msyql
root      62709  57953  0 08:46 pts/1    00:00:00 grep msyql
[root@mysql data]# service mysql3306 start
Starting MySQL..                                           [  OK  ]
[root@mysql data]# /usr/local/mysql/bin/mysql -uivan -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.17-log Source distribution

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

ivan@master 08:47:36 >grant all on *.* to 'root'@'localhost' with grant option;
Query OK, 0 rows affected (0.00 sec)

[root@mysql data]# /usr/local/mysql/bin/mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.5.17-log Source distribution

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

root@master 08:49:33 >show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| c_test             |
| ivan               |
| mysql              |
| performance_schema |
| test               |
| webcat             |
+--------------------+
至此一切正常。。。。。啊哈哈哈哈。。。。


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯