从网上下的mysql登录密码_如何在忘记mysql的登录密码时更改mysql登录的密码(window及linux)...

最近一直在边学习边开发java项目,理所当然的就少不了跟数据库打交道了,但是有时候就会脑子一短路,把mysql的登录密码给忘记了,这个时候我们又很急切的需要进到数据库中查看数据,那这个时候要怎么才能改密码呢,我就经历了一次这种情况,真的是不经历永远不知道有多么绝望的。在网上找了很多教程,都是比较零散的,所以决定把自己的经验整理一下,写下来,免得自己以后忘记了,如果有不足或者错误的地方,还请指出,共同学习,快乐coding。

在改密码之前,我们需要先把mysql服务停止了。首先,我们先说说在Windows系统下如何在忘记MySQL密码的情况下如何去更改登录密码。对于大多数人而言,应该用的最多的就是Windows系统了,所以很多时候都是在Windows环境下进行开发的。最重要的!最重要的!最重要的!啊,重要的事情要说三遍,你要记得你的mysql安装路径,一般如果是默认的安装路径的话,就是在C盘的Program files这个文件夹下会有一个MySQL的文件夹,默认安装的MySQL就是在这里了,然后我们点进去,进入到一个叫MySQL server x.x的文件夹内,后面跟的是你对应安装的mysql版本号,可以看到如下图我的一个文档目录结构图,bin目录下主要是一些可执行文件了,include下主要是放得一些c++头文件,而lib目录下则放的是mysql的一些dll文件,而share目录下则是配置信息以及一些默认的SQL文件。重点的话我们就是放在bin文件以及my.ini或者my-default.ini这里。

da82c7eb610dceea2e0c7a17a268b8b2.png

如果这个目录下没有my.ini或者my-default.ini这个文件的话,我们需要手动给他添加一个,这个文件是我们自己电脑上mysql的一些基础配置信息。如果这里没有的话,我们需要到C盘根目录下,进入到programdata这个文件下,如果在C盘看不到这个文件的话,我们需要到查看里,设置一下隐藏文件可见的选项,然后就可以看见了。这里的文档目录结构和上面是一样的,也是找到mysql->mysql server x.x,然后在这里就可以看到有一个my.ini文件了,我们直接把复制到我们的mysql安装目录下,就是上图的位置,粘贴的时候会提示一下我们需要管理员权限,同意一下就好。

517165a2f183699e7ee76621b25a5763.png

复制好my.ini文件之后,我们现在先不要关闭上面的文件窗口。现在我们来打开cmd窗口,一定要以管理员身份运行,一定要以管理员身份运行,一定要以管理员身份运行。然后利用cd命令,进入到我们的mysql安装目录下的bin目录下,大小写无所谓的,但是空格以及斜杠一定要主要,否则会提示找不到该目录。然后进入到该目录下后,我们输入如下命令:mysqld --skip-grant-tables--->回车。当然我们不cd到该目录下,直接运行命令也是可以的。

e2196fbd88a04526180dcb98234ac9b3.png

在这里提示一下,如果我们没有将.ini这个文件复制到mysql的安装目录下,运行上面的命令时,会报如下错误,这个时候我们只需要将.ini文件复制过来后再运行上面的命令就好了。这个命令是可以让我们以任何身份进入到mysql中,也就是可以在不要进行身份验证的情况下进入数据库中,所以是很危险的,平时还是牢牢记住mysql密码吧。当我们在输入上述命令敲回车后,我们当前的窗口就处于不可编辑的状态了。

b4384135f790131ccfc8c3b70cf6fffa.png

这个时候我们再打开一个cmd窗口,然后直接输入mysql回车,这个时候神奇的事情就发生了,你会发现你不需要输入用户名和密码就进入到mysql中了。

6f3e5431f8a1a5e3e80d450ae898f315.png

接下来就是进入到mysql数据库中的用户表中进行密码的更改了,如果对mysql有所研究的话,就知道在mysql中,所有的用户都是保存在mysql数据库中的user这张表里面,如果不知道数据库中有哪些数据库的话,我们可以用show databases命令查看mysql都有哪些数据库,然后使用use mysql命令选择mysql数据库,但是我们现在假设并不知道mysql数据库中都有哪些表,那么这个时候可以使用show tables命令查看当前数据库中都有哪些表。

d64702729f78efcd807bb9dda3cb838a.png

a577ae4e721021a9d7e371e9518d4ba6.png

可以看到user表在最下面,我们先查看一下user表中都有哪些字段,直接select * from user;因为我们并不知道这张表中密码是哪个字段,不过即使我们使用select了,好像还是看不懂哪个字段保存的是我们的密码,别急,现在我就来揭秘吧!其实在mysql5.5还是哪个版本后,密码字段就改了,不再是password,而是改成了authentication_string了,所以现在知道密码字段了,那么就执行更改密码命令吧:update user set authentication_string=password('你的密码') where user = '需要更改密码的账号名';因为在mysql中,有一个对密码加密的方法,就是password(),而且你必须要使用这个方法来设置密码,如果你直接将新密码设置给authentication_string字段的话,到时候登录的时候就不能正确解析密码了,也就导致设置的密码是无用的。更改好密码之后,我们就可以关闭以上所有的窗口了,然后重启mysql服务,就可以用新密码登录进数据库了。到这里在Windows上更改mysql数据库密码就分享到这里了,下面将介绍一下在linux中如何修改mysql密码,很简单,远比在Windows中简单的多!

225190fdb1c68d43c269113e6d26aa51.png

在linux中更改mysql密码。在linux中需要找到mysql的安装位置,然后找到目录下的debian.cnf这个文件,利用vi工具打开,进去后可以看到这里面有一个mysql用户名和密码,这个是mysql默认提供在linux中的一个超级管理员,然后记住这个用户名,密码的话直接复制,防止记错,然后就退出,按照正常的登录mysql的方法登录mysql,只不过使用的账户是刚刚看到的这个。进去之后更改密码的方式就跟在Windows上是一样的了,同样的,如果是5.X以后的mysql版本的话,用户密码字段不是password了,改成了authentication_string,如果不知道,可以先查看一下user表中的结构再进行更改。

226ea4e70e244711c3371cf410b0f46b.png

df272b14734231d91d7c6d8782ec0916.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 PyQT5 登录界面,包括记住密码的功能和基于 MySQL 的验证: ```python import sys from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QPushButton, QHBoxLayout, QVBoxLayout, QMessageBox import mysql.connector class Login(QWidget): def __init__(self): super().__init__() # 初始化数据库连接 self.cnx = mysql.connector.connect(user='root', password='password', host='localhost', database='testdb') self.cursor = self.cnx.cursor() # 初始化 UI self.initUI() def initUI(self): # 创建组件 self.label_username = QLabel('Username') self.label_password = QLabel('Password') self.edit_username = QLineEdit() self.edit_password = QLineEdit() self.edit_password.setEchoMode(QLineEdit.Password) self.btn_login = QPushButton('Login') self.btn_login.clicked.connect(self.login) self.btn_cancel = QPushButton('Cancel') self.btn_cancel.clicked.connect(self.close) self.check_remember = QCheckBox('Remember me') self.check_remember.setChecked(True) # 默认选中 # 创建布局 hbox_username = QHBoxLayout() hbox_username.addWidget(self.label_username) hbox_username.addWidget(self.edit_username) hbox_password = QHBoxLayout() hbox_password.addWidget(self.label_password) hbox_password.addWidget(self.edit_password) hbox_buttons = QHBoxLayout() hbox_buttons.addWidget(self.btn_login) hbox_buttons.addWidget(self.btn_cancel) vbox = QVBoxLayout() vbox.addLayout(hbox_username) vbox.addLayout(hbox_password) vbox.addWidget(self.check_remember) vbox.addLayout(hbox_buttons) # 设置窗口属性 self.setLayout(vbox) self.setGeometry(300, 300, 300, 150) self.setWindowTitle('Login') # 读取记住密码的数据 settings = QSettings('myapp.ini', QSettings.IniFormat) self.edit_username.setText(settings.value('username', '')) self.edit_password.setText(settings.value('password', '')) def closeEvent(self, event): # 保存记住密码的数据 settings = QSettings('myapp.ini', QSettings.IniFormat) if self.check_remember.isChecked(): settings.setValue('username', self.edit_username.text()) settings.setValue('password', self.edit_password.text()) else: settings.remove('username') settings.remove('password') def login(self): # 从数据库中验证用户名和密码 username = self.edit_username.text() password = self.edit_password.text() query = "SELECT * FROM users WHERE username=%s AND password=%s" self.cursor.execute(query, (username, password)) result = self.cursor.fetchone() if result: QMessageBox.information(self, 'Success', 'Login successful') else: QMessageBox.warning(self, 'Error', 'Invalid username or password') if __name__ == '__main__': app = QApplication(sys.argv) login = Login() login.show() sys.exit(app.exec_()) ``` 在这个例子中,我们使用了 MySQL 数据库进行验证,用户名和密码存储在一个名为 `users` 的表中。你需要将 `user`、`password`、`host` 和 `database` 更改为你的 MySQL 连接信息,并且需要确保在 MySQL 数据库中有一个名为 `users` 的表。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值