如何查看MySQL连接的root密码

2017-01-18 21:58:07 5103

如何查看MySQL连接的root密码


前几天在用Navicat去连本地的MySQL的时候发现我已经忘了密码了,试了网上很多方式都不行…后来发现其实可以自己直接去看当初设置的密码,下面将方法总结出来分享给大家,有需要的朋友们可以参考借鉴。


1.首先我们进到MySQL的bin目录下

 cd /usr/local/mysql/bin

2.切换成root身份

 bin sudo su

3.跨过权限的验证

sh-3.2# ./mysqld_safe --skip-grant-tables &

[1] 9451

sh-3.2# 2017-01-03T15:40:10.6NZ mysqld_safe Logging to '/usr/local/mysql/data/yzydeMacBook-Pro.local.err'.

2017-01-03T15:40:10.6NZ mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data

4.以root身份登录MySQL

./mysql -uroot

Welcome to the MySQL monitor. Commands end with ; or g.

Your MySQL connection id is 2

Server version: 5.7.12 MySQL Community Server (GPL)


Copyright (c) 2000, 2016, 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.

5.选择mysql数据库

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

6.显示mysql数据库下的表

mysql> show tables;

+---------------------------+

| Tables_in_mysql   |

+---------------------------+

| columns_priv    |

| db      |

| engine_cost    |

| event      |

| func      |

| general_log    |

| gtid_executed    |

| help_category    |

| help_keyword    |

| help_relation    |

| help_topic    |

| innodb_index_stats  |

| innodb_table_stats  |

| ndb_binlog_index   |

| plugin     |

| proc      |

| procs_priv    |

| proxies_priv    |

| server_cost    |

| 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      |

+---------------------------+

31 rows in set (0.00 sec)

7.很明显我们需要的密码是存在user这个表下的,所以我们直接看user的表结构是怎么样的

mysql> show columns from user;

+------------------------+-----------------------------------+------+-----+-----------------------+-------+

| Field     | Type        | Null | Key | Default    | Extra |

+------------------------+-----------------------------------+------+-----+-----------------------+-------+

| Host     | char(60)       | NO | PRI |      |  |

| User     | char(32)       | NO | PRI |      |  |

| select_priv   | enum('N','Y')      | NO |  | N      |  |

| Insert_priv   | enum('N','Y')      | NO |  | N      |  |

| Update_priv   | enum('N','Y')      | NO |  | N      |  |

| Delete_priv   | enum('N','Y')      | NO |  | N      |  |

| Create_priv   | enum('N','Y')      | NO |  | N      |  |

| Drop_priv    | enum('N','Y')      | NO |  | N      |  |

| Reload_priv   | enum('N','Y')      | NO |  | N      |  |

| Shutdown_priv   | enum('N','Y')      | NO |  | N      |  |

| Process_priv   | enum('N','Y')      | NO |  | N      |  |

| File_priv    | enum('N','Y')      | NO |  | N      |  |

| Grant_priv    | enum('N','Y')      | NO |  | N      |  |

| References_priv  | enum('N','Y')      | NO |  | N      |  |

| Index_priv    | enum('N','Y')      | NO |  | N      |  |

| Alter_priv    | enum('N','Y')      | NO |  | N      |  |

| Show_db_priv   | enum('N','Y')      | NO |  | N      |  |

| Super_priv    | enum('N','Y')      | NO |  | N      |  |

| Create_tmp_table_priv | enum('N','Y')      | NO |  | N      |  |

| Lock_tables_priv  | enum('N','Y')      | NO |  | N      |  |

| Execute_priv   | enum('N','Y')      | NO |  | N      |  |

| Repl_slave_priv  | enum('N','Y')      | NO |  | N      |  |

| Repl_client_priv  | enum('N','Y')      | NO |  | N      |  |

| Create_view_priv  | enum('N','Y')      | NO |  | N      |  |

| Show_view_priv   | enum('N','Y')      | NO |  | N      |  |

| Create_routine_priv | enum('N','Y')      | NO |  | N      |  |

| Alter_routine_priv  | enum('N','Y')      | NO |  | N      |  |

| Create_user_priv  | enum('N','Y')      | NO |  | N      |  |

| Event_priv    | enum('N','Y')      | NO |  | N      |  |

| Trigger_priv   | enum('N','Y')      | NO |  | N      |  |

| Create_tablespace_priv | enum('N','Y')      | NO |  | N      |  |

| ssl_type    | enum('','ANY','X509','SPECIFIED') | NO |  |      |  |

| ssl_cipher    | blob        | NO |  | NULL     |  |

| x509_issuer   | blob        | NO |  | NULL     |  |

| x509_subject   | blob        | NO |  | NULL     |  |

| max_questions   | int(11) unsigned     | NO |  | 0      |  |

| max_updates   | int(11) unsigned     | NO |  | 0      |  |

| max_connections  | int(11) unsigned     | NO |  | 0      |  |

| max_user_connections | int(11) unsigned     | NO |  | 0      |  |

| plugin     | char(64)       | NO |  | mysql_native_password |  |

| authentication_string | text        | YES |  | NULL     |  |

| password_expired  | enum('N','Y')      | NO |  | N      |  |

| password_last_changed | timestamp       | YES |  | NULL     |  |

| password_lifetime  | smallint(5) unsigned    | YES |  | NULL     |  |

| account_locked   | enum('N','Y')      | NO |  | N      |  |

+------------------------+-----------------------------------+------+-----+-----------------------+-------+

45 rows in set (0.02 sec)

8.表的内容比较多,但是我们很容易就发现,密码其实是存在authentication_string字段下的,那我们就可以直接读User内容为root的密码了

mysql> select authentication_string from user where User='root';

+-------------------------------------------+

| authentication_string      |

+-------------------------------------------+

| *781D25322166DB7FF99BA4A1FA5ED30439A60DDE |

+-------------------------------------------+

1 row in set (0.01 sec)

OK,那我们拿着这个密码到Navicat试试看

20171491732691.png

好了,以上就是这篇文章的全部内容了,希望对大家的学习或者工作能带来一定的帮助。


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: