mysql数据库root密码忘记了,这里有一个简单的方法可以解决

mysql安装久了,就容易忘记root密码,那么下面这个找回密码的方法将解决你的问题:

特别注意事项:

本方法只适合mysql数据库密码遗忘(忘记了)

这个解决方案的前提是你的电脑里安装了navicat(其他的第三方工具我没试过,不确定是否可以用)

首先,确保你的navicat或者其他第三方工具之前已经正确连接了你的mysql数据库,只是密码忘记了

下面是解决方案:

(1)打开navicat,正常连接数据库

(2)选择【文件】菜单中的【导出连接】,

在【导出连接】对话框中选择【mysql】,在【导出密码】选项中打勾,点击【确定】到处文件。

使用记事本打开导出的文件,找到下图所示信息位置,选择复制;

(3)查询密码

打开代码在线运行 - 在线工具

在删除左侧代码栏中代码,然后复制以下代码:

<?php
class NavicatPassword
{
    protected $version = 0;
    protected $aesKey = 'libcckeylibcckey';
    protected $aesIv = 'libcciv libcciv ';
    protected $blowString = '3DC5CA39';
    protected $blowKey = null;
    protected $blowIv = null;
     
    public function __construct($version = 12)
    {
        $this->version = $version;
        $this->blowKey = sha1('3DC5CA39', true);
        $this->blowIv = hex2bin('d9c7c3c8870d64bd');
    }
     
    public function encrypt($string)
    {
        $result = FALSE;
        switch ($this->version) {
            case 11:
                $result = $this->encryptEleven($string);
                break;
            case 12:
                $result = $this->encryptTwelve($string);
                break;
            default:
                break;
        }
         
        return $result;
    }
     
    protected function encryptEleven($string)
    {
        $round = intval(floor(strlen($string) / 8));
        $leftLength = strlen($string) % 8;
        $result = '';
        $currentVector = $this->blowIv;
         
        for ($i = 0; $i < $round; $i++) {
            $temp = $this->encryptBlock($this->xorBytes(substr($string, 8 * $i, 8), $currentVector));
            $currentVector = $this->xorBytes($currentVector, $temp);
            $result .= $temp;
        }
         
        if ($leftLength) {
            $currentVector = $this->encryptBlock($currentVector);
            $result .= $this->xorBytes(substr($string, 8 * $i, $leftLength), $currentVector);
        }
         
        return strtoupper(bin2hex($result));
    }
     
    protected function encryptBlock($block)
    {
        return openssl_encrypt($block, 'BF-ECB', $this->blowKey, OPENSSL_RAW_DATA|OPENSSL_NO_PADDING);
    }
     
    protected function decryptBlock($block)
    {
        return openssl_decrypt($block, 'BF-ECB', $this->blowKey, OPENSSL_RAW_DATA|OPENSSL_NO_PADDING);
    }
     
    protected function xorBytes($str1, $str2)
    {
        $result = '';
        for ($i = 0; $i < strlen($str1); $i++) {
            $result .= chr(ord($str1[$i]) ^ ord($str2[$i]));
        }
         
        return $result;
    }
     
    protected function encryptTwelve($string)
    {
        $result = openssl_encrypt($string, 'AES-128-CBC', $this->aesKey, OPENSSL_RAW_DATA, $this->aesIv);
        return strtoupper(bin2hex($result));
    }
     
    public function decrypt($string)
    {
        $result = FALSE;
        switch ($this->version) {
            case 11:
                $result = $this->decryptEleven($string);
                break;
            case 12:
                $result = $this->decryptTwelve($string);
                break;
            default:
                break;
        }
         
        return $result;
    }
     
    protected function decryptEleven($upperString)
    {
        $string = hex2bin(strtolower($upperString));
         
        $round = intval(floor(strlen($string) / 8));
        $leftLength = strlen($string) % 8;
        $result = '';
        $currentVector = $this->blowIv;
         
        for ($i = 0; $i < $round; $i++) {
            $encryptedBlock = substr($string, 8 * $i, 8);
            $temp = $this->xorBytes($this->decryptBlock($encryptedBlock), $currentVector);
            $currentVector = $this->xorBytes($currentVector, $encryptedBlock);
            $result .= $temp;
        }
         
        if ($leftLength) {
            $currentVector = $this->encryptBlock($currentVector);
            $result .= $this->xorBytes(substr($string, 8 * $i, $leftLength), $currentVector);
        }
         
        return $result;
    }
     
    protected function decryptTwelve($upperString)
    {
        $string = hex2bin(strtolower($upperString));
        return openssl_decrypt($string, 'AES-128-CBC', $this->aesKey, OPENSSL_RAW_DATA, $this->aesIv);
    }
};
 
 
//需要指定版本两种,11或12
//$navicatPassword = new NavicatPassword(11);
//这里我指定的12的版本,原先指定的11,执行之后的密码是乱码
$navicatPassword = new NavicatPassword(12);
 
//解密
//$decode = $navicatPassword->decrypt('5658213B');
$decode = $navicatPassword->decrypt('复制出来的密码');
echo $decode."\n";
?>

在最下面的位置,将我们在导出文件中复制的内容复制到此处,记得保留单引号点击执行,即可看到root密码,然后复制粘贴到我们的IDE编辑器中,提示成功连接mysql数据库。

  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 可以通过以下步骤查看MySQL root密码: 1. 打开MySQL的配置文件my.ini或my.cnf,该文件通常位于MySQL安装目录下的bin目录中。 2. 在该文件中查找类似于以下内容的一行: [mysqld] skip-grant-tables 如果没有找到该行,则在[mysqld]下添加该行。 3. 保存并关闭该文件。 4. 重新启动MySQL服务。 5. 打开命令行窗口,输入以下命令: mysql -u root 如果成功登录,则说明root密码为空。 6. 修改root密码mysql> use mysql; mysql> update user set password=password('newpassword') where user='root'; mysql> flush privileges; mysql> quit; 其中,newpassword为新的密码。 7. 重新启动MySQL服务。 8. 打开命令行窗口,输入以下命令: mysql -u root -p 输入新的密码,如果成功登录,则说明密码修改成功。 ### 回答2: 在Windows操作系统中查看MySQL root密码方法有很多种,下面介绍几种比较容易操作的方法方法一:使用MySQL Workbench MySQL Workbench是MySQL官方提供的一款管理数据库的工具,可以连接到MySQL服务器并管理其中的数据库和用户账号等。通过Workbench可以查看MySQLroot用户密码。 1. 首先下载并安装MySQL Workbench,打开软件后连接到MySQL服务器。 2. 登录MySQL服务器并选择要查看密码root用户,在用户管理页面右键单击该用户,选择“Edit Selected User”进入用户详情页面。 3. 在用户详情页面中,可以看到密码一栏中有一行加密的字符串,这个字符串即为root用户的密码方法二:使用命令行工具 在Windows命令提示符窗口中使用MySQL命令查看root用户密码也比较容易: 1. 首先打开命令提示符窗口,进入MySQL安装的bin目录下。 2. 输入命令“mysql -uroot -p”,回车后会提示输入密码。 3. 直接按回车键,如果密码正确,则会进入MySQL的命令行界面。 4. 在MySQL命令行界面中输入命令“SELECT PASSWORD('yourpassword')”,其中“yourpassword”是你要查看的密码,执行后即可得到对应的加密字符串。 总的来说,以上两种方法都可以比较简单地查看MySQL root密码,推荐使用MySQL Workbench的方式,因为它不需要输入任何命令,而且比较直观。 ### 回答3: 在Windows环境下,如果需要查看MySQL root密码,有以下几种方法: 1. 在命令行下通过mysqladmin命令查看。 打开命令行,输入以下命令: mysqladmin -u root -p password 然后输入MySQL root用户登录密码,便可以查看MySQL root密码。 2. 在MySQL配置文件中查看。 在Windows环境下,MySQL通常安装在C:\Program Files\MySQL\MySQL Server X.X(X.X为版本号)目录下。在此目录下,可以找到mysql_install_db.bat文件,双击打开,会在MySQL安装目录下生成my.ini配置文件。打开此文件,可以找到以下代码: # Password set when installing MySQL (server) # Change here for compatibility with old password policy. # 可以在此处找到MySQL root密码 # To enable password expiration policy, see the server manual. secure_file_priv="C:/ProgramData/MySQL/MySQL Server X.X/Uploads" skip_name_resolve # The next three options are mutually exclusive to SERVER_PORT below. # skip-networking # enable-named-pipe # shared-memory 可以在代码中找到关于MySQL root密码的注释,并在相应位置查看。 3. 使用MySQL Workbench查看。 MySQL Workbench是一款MySQL的可视化管理工具。打开MySQL Workbench,可以在主界面左侧栏中找到MySQL Connections,在此处点击右键,选择Properties,便可以进入到“Connection”页面,在此页面中选择“Store in Keychain”,便可以在下方找到MySQL root密码。 以上是在Windows环境下查看MySQL root密码的几种方法。需要注意的是,MySQL root用户是有最高管理权限的,操作时需要谨慎,避免误操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值