关于mysql中root权限丢失的问题
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,刚听一哥们说执行了一条语句:revoke all on *.* from root@localhost; --呵呵,当时到底是怎样的心理活动,这是怎样的恨。。。于是小菜就做了一个实验,心里感觉应该和密
千家信息网最后更新 2025年01月20日关于mysql中root权限丢失的问题刚听一哥们说执行了一条语句: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 |
+--------------------+
至此一切正常。。。。。啊哈哈哈哈。。。。
于是小菜就做了一个实验,心里感觉应该和密码丢失后跳过权限重新设置密码的解决方法是一样的,当然这只是思路,试试才知道。
首先停止数据库[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 |
+--------------------+
至此一切正常。。。。。啊哈哈哈哈。。。。
密码
数据
数据库
用户
方式
方法
登录
权限
只是
哥们
小菜
心理
思路
感觉
时候
至此
语句
这是
实验
服务
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
新吴区软件开发收费标准
向日葵服务器录屏
新民软件开发公司
腾讯云服务器开启smtp
电脑服务器终止怎么回事
苏州微信软件开发平台
建立大数据库
数据库迁移云安全吗
电信网络技术二面攻略
HCNA网络技术有感
芜湖市网络安全宣传
实况足球 满级数据库
元数据 数据库
服务器r740支持cpu
归嘉网络技术河北有限公司
福州网络安全检查
淅江格家网络技术有限公司
本地建服务器管理
网络技术公司如何参与套路贷
由于服务器故障发送失败
自己搭建mac服务器
数据库技术的根本
大学网络安全教育开头
互联网科技报告
软件开发考核绩效
pwr服务器是什么意思
苹果做服务器系统吗
数据库和webservice
游戏服务器延迟跟路由器有关系吗
金铲铲不在一个服务器