十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
今日分享主题:mysql root账号如何重置密码
创新互联建站-专业网站定制、快速模板网站建设、高性价比青秀网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式青秀网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖青秀地区。费用合理售后完善,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:使用重置后的密码再登录时问题解决。
开始--》运行--》cmd
进入mysql安装目录的bin文件夹(客户都没设置环境变量找不到mysql命令只能到那个目录)
比如:D:\Program
Files\MySQL\MySQL
Server
5.0\bin
1.暂停mysql服务;
2.忽略授权问题;
3.另一个命令行进去myql;
4.重置root密码并刷新授权表;
5.任务管理器杀掉mysql进程;
6.重启mysql服务;
net
stop
mysql
mysqld
--skip-grant-tables
开另外一个命令行窗口,一样进入那个目录
mysql
-u
root
-p
update
mysql.user
set
password=PASSWORD("新密码")
where
User="root";
flush
privileges;
任务管理器杀掉mysql进程
net
start
mysql
#################################################################
vi
/etc/my.cnf
在[mysqld]添加
skip-grant-tables
/etc/init.d/mysql
restart
mysql
update
mysql.user
set
password=PASSWORD("新密码")
where
User="root";
flush
privileges;
/etc/init.d/mysql
restart
1、在SHELL环境下,使用mysqladmin命令设置:
mysqladmin –u root –p password “新密码”
回车后要求输入旧密码。
2、 在mysql环境中使用update命令,直接更新mysql库user表的数据
Update mysql.user set password=password(‘新密码’) where user=’root’;
flush privileges;
3、在mysql环境中,使用grant命令,修改root用户的授权权限。
grant all on *.* to root@’localhost’ identified by '新密码';
1、编辑MySQL配置文件:\x0d\x0awindows环境中:%MySQL_installdir%\my.ini //MySQL安装目录下的my.ini配置文件。\x0d\x0alinux环境中:/etc/my.cnf\x0d\x0a在[MySQLd]配置段添加如下一行:skip-grant-tables\x0d\x0a保存退出编辑。\x0d\x0a2、然后重启MySQL服务\x0d\x0awindows环境中:\x0d\x0anet stop MySQL\x0d\x0anet start MySQL\x0d\x0alinux环境中:\x0d\x0a/etc/init.d/MySQLd restart\x0d\x0a3、设置新的ROOT密码\x0d\x0a然后再在cmd命令行下执行:\x0d\x0aMySQL -uroot -p MySQL\x0d\x0a要求输入密码时直接回车无需密码即可进入数据库了。\x0d\x0a现在我们执行如下语句把root密码更新为 123456:\x0d\x0aupdate user set password=PASSWORD("123456") where user='root'\x0d\x0aquit 退出MySQL。\x0d\x0a4、还原配置文件并重启服务\x0d\x0a然后修改MySQL配置文件把刚才添加的那一行(skip-grant-tables)删除。\x0d\x0a再次重起MySQL服务,即可\x0d\x0a二.修改MySQL的用户名和密码:(未证实)\x0d\x0a方法一:(适用于管理员或者有全局权限的用户重设其它用户的密码)\x0d\x0a进入命令行模式\x0d\x0amysql -u root mysql\x0d\x0amysql UPDATE user SET password=PASSWORD("new password") WHERE user='name'\x0d\x0amysql FLUSH PRIVILEGES\x0d\x0amysql QUIT\x0d\x0a方法二:(应用同上,只是方法不同)\x0d\x0a mysql -u root mysql\x0d\x0amysql SET PASSWORD FOR name=PASSWORD('new password')\x0d\x0amysql QUIT\x0d\x0a最后必杀技:\x0d\x0amysqladmin -u root "old password" "new password"\x0d\x0a注:以上name请用你的用户名来替代,new password请输入你想要设置的密码。