目前Mysql Workbench 有连接记录,点击可以登录mysql数据库,用户是root。 但是root用户的密码忘记了。怎样找回呢? 因为想在Comand line client上再以root用户登录mysql数据库,但是苦于忘记了root的密码。 这种情况怎么找回呢?
sudo mysqld_safe --skip-grant-tables &
跳过验证验证,然后修改密码
评论
有用 2如果是我知道我的root用户的密文是*E79902AA8A53379ECA72E13FB275DBCEAC145680,能查出明文来吗?
评论
有用 0官方有忘记密码的操作教程: https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html
- 强制修改密码
mysqld --skip-grant-tables --skip-networking
或者
mysqld --init-file=xxx.sql
然后修改密码就是:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
- 爆破
mysql_native_password加密方法是做两次hash1
参考: https://cloud.tencent.com/developer/article/2242261
https://cloud.tencent.com/developer/article/2247829
可以写存储过程来做, 可以参考如下SQL:
(root@127.0.0.1) [(none)]> select CONCAT('*', UPPER(SHA1(UNHEX(SHA1('123456')))));
+-------------------------------------------------+
| CONCAT('*', UPPER(SHA1(UNHEX(SHA1('123456'))))) |
+-------------------------------------------------+
| *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-------------------------------------------------+
1 row in set (0.00 sec)
(root@127.0.0.1) [(none)]>
python可以参考
def enc_mysql_native_password(password):
return '*' + hashlib.sha1(hashlib.sha1(password.encode()).digest()).hexdigest().upper()
- 一些在线网址
有些网址会提供破解hash的功能, 你可以去试下(比如cmd5), 你这个我去试了下, 要收费的…
评论
有用 1忘记root密码处理办法:
1.关闭数据库
pkill mysqld
2.安全模式启动数据库
[root@localhost data]# mysqld_safe --skip-grant-tables --skip- networking &
3. 登陆数据库
mysql
4. 刷新授权表
flush privileges;
5. 修改密码
mysql> alter user root@'localhost' identified with mysql_native_password by '123';
6. 重启数据库到正常模式
pkill mysqld mysqld_safe &
评论
有用 0
墨值悬赏

