找到mysql的用户名和密码的具体步骤如下:
1、打开mysql.exe和mysqld.exe所在的文件夹,复制路径地址。
2、打开cmd命令提示符,进入上一步mysql.exe所在的文件夹。
3、输入命令mysqld --skip-grant-tables回车,此时就跳过了mysql的用户验证。
注意:输入此命令之后命令行就无法 *** 作了,此时可以再打开一个新的命令行。
注意:在输入此命令之前先在任务管理器中结束mysqld.exe进程,确保mysql服务器端已结束运行。
4、直接输入mysql,不需要带任何登录参数直接回车就可以登陆上数据库。
5、输入show databases可以看到所有数据库说明成功登陆。
6、其中mysql库就是保存用户名的地方。输入use mysql选择mysql数据库。
7、show tables查看所有表,会发现有个user表,这里存放的就是用户名,密码,权限等等账户信息。
8、输入select user,host,password from user来查看账户信息。至此,便找到了用户名和密码。
这样就解决了“找到mysql的用户名和密码”的问题。
在闲逛mysql时发现mysql库的user表下有两个账户比较特别:mysql.session 和 mysql.sys查一下 user 表里面都有哪些账户:mysql.sys@localhost:用于 sys schema 中对象的定义。使用 mysql.sys 用户可避免 DBA 重命名或者删除 root 用户时发生的问题。该用户已被锁定,客户端无法连接。mysql.session@localhost:插件内部使用来访问服务器。该用户已被锁定,客户端无法连接。 root@localhost:这个就是 root 账号啦!其用于管理。该用户拥有所有权限,可执行任何 *** 作。严格来说,这个账号不应该被保留。 root 是 MySQ L的特权账号,这个众所周知,也带来安全隐患。建议将root账号禁用或者删除,新建一个特权账号用于管理。 在MySQL 5.6以前,我们通过 show processlist\G 命令查看系统中正在运行的所有进程: 从5.7开始,我们又可以通过 sys.session 表来查看系统正在运行的所有进程,而且该表中的记录相 processlist 比较完善: 很显然, select * from sys.session 能得到更多的信息。今日分享主题:mysql root账号如何重置密码
前两天发现我的 mysql 数据库突然无法登录,但是上周还使用得是正常的,经过一番查找还是没有找到问题的原因。
DBA 给我的解释:我怀疑主机重启后,某些文件(user.*)就丢了,不知道啥原因。我记得之前你也是重启后遇到过相同问题。
既然这样,只好重置 root 账号密码了。具体 *** 作步骤如下
Step1:停止 mysql 服务
命令:systemctl stop mysqld #停掉MySQL
命令:systemctl status mysqld #查看状态
Step2:修改/etc/my.cnf配置,添加 skip_grant_tables=1 启动设置,注意要在[mysqld]行所在的下面添加。
Step3:重启 mysql 并查看状态
systemctl start mysqld
systemctl status mysqld
Step4:使用 mysql 命令连接到 mysql 服务器,重新设置root密码
use mysql #进入mysql数据库 select * from user#查询user表 查看是否有root账号,如果没有就需要 *** 作如下insert into 语句:
如果 user 表里面有 root 账号,则直接可以重置密码。
命令如下:update user set authentication_string=password('test123') where user='root'
FLUSH PRIVILEGES#刷新授权列表
再输入 exit 退出mysql
Step5:将步骤2中/etc/my.cnf 文件中添加的 skip_grant_tables=1 启动设置去掉,再执行一个systemctl restart mysql 命令重启 mysql 服务。
Step6:使用重置后的密码再登录时问题解决。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)