今日分享主题:mysql root账号如何重置密码
创新互联10多年成都企业网站定制服务;为您提供网站建设,网站制作,网页设计及高端网站定制服务,成都企业网站定制及推广,对成都混凝土搅拌机等多个行业拥有多年的网站营销经验的网站建设公司。
前两天发现我的 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:使用重置后的密码再登录时问题解决。
1、编辑MySQL配置文件:
windows环境中:%MySQL_installdir%\my.ini //MySQL安装目录下的my.ini配置文件。
linux环境中:/etc/my.cnf
在[MySQLd]配置段添加如下一行:skip-grant-tables
保存退出编辑。
2、然后重启MySQL服务
windows环境中:
net stop MySQL
net start MySQL
linux环境中:
/etc/init.d/MySQLd restart
3、设置新的ROOT密码
然后再在cmd命令行下执行:
MySQL -uroot -p MySQL
要求输入密码时直接回车无需密码即可进入数据库了。
现在我们执行如下语句把root密码更新为 123456:
update user set password=PASSWORD("123456") where user='root'
quit 退出MySQL。
4、还原配置文件并重启服务
然后修改MySQL配置文件把刚才添加的那一行(skip-grant-tables)删除。
再次重起MySQL服务,即可
二.修改MySQL的用户名和密码:(未证实)
方法一:(适用于管理员或者有全局权限的用户重设其它用户的密码)
进入命令行模式
mysql -u root mysql
mysql UPDATE user SET password=PASSWORD("new password") WHERE user='name'
mysql FLUSH PRIVILEGES
mysql QUIT
方法二:(应用同上,只是方法不同)
mysql -u root mysql
mysql SET PASSWORD FOR name=PASSWORD('new password')
mysql QUIT
最后必杀技:
mysqladmin -u root "old password" "new password"
注:以上name请用你的用户名来替代,new password请输入你想要设置的密码。
在使用mysql时,如果想修改用户密码,怎么修改?我们可以借助客户端工具来修改,下面来看一下。
01
打开客户端工具Navicat,打开数据库里的mysql库,这是一个系统数据库。
02
打开后,在Tables表里,找到user表,这是保存系统用户的一个表数据。
03
打开后,就可以在这里看到每个数据库的用户名和密码了。
04
要修改密码,我们点击单元格,让其变成编辑状态后,直接输入新的密码就行了。
mysql数据库密码忘记了,第一可以通过修改文件配置来重新设置密码,第二可以重新下载mysql就可以重新设置密码了。在我们使用数据库的时候通常都会使用root用户登录,所以就需要设置密码,但是这个密码是不可见的,而且在使用Navicat Premium连接数据库的时候也需要使用密码才可以连接。当我们忘记密码时,我们有两种办法来解决。
第一打开mysql.exe和mysqld.exe所在的文件夹,复制路径地址,按win+R打开cmd命令提示符并进入刚刚所复制的路径中,输入命令mysqld --skip-grant-tables,然后敲回车,此时就跳过了用户验证过程,注意:输入此命令之后该命令窗口就无法操作了,此时应该从新再打开一个新的命令窗口。在输入此命令之前先在任务管理器中(ctrl+alt+del)结束mysqld.exe进程。然后直接在命令行输入mysql,不需要带任何登录参数和密码,直接回车就可以登录上数据库。 输入show databases;可以看到所有数据库的内容就说明已经登录成功了,就可以使用了。如果想更改root密码,输入update user set password=password('123456') where user='root' and host='localhost'; 就可以修改密码了。
第二可以将电脑中的mysql文件夹和程序都删除,重新下载并配置mysql,这样你的数据库就是一个新的无密码的数据库了。