mysql免密码登录忘记密码

小熊 MySQL评论1,546字数 1160阅读3分52秒阅读模式

第一步:停止mysql服务

/etc/init.d/mysqld stop

windows是如下命令,其中的mysql81是你的mysql服务名。

net stop mysql81

第二步:跳过密码验证

mysqld_safe --skip-grant-tables &

如果是windows则使用如下命令:

mysqld --skip-grant-tables

跳过权限表启动mysql 显示

第三步:更新密码

use mysql;
#删除的记录要insert进去,然后修改密码
update user set password=password("new_pass") where user="root";
flush privileges;

注意:如果是忘记了密码,使用上面的修改没有问题,如果真的是删除了localhost的记录,再使用insert into user (user,host) values ('root','localhost');这样是不行的,因为这其中的每条记录涉都及了很多权限的问题,有可能导致mysql数据库消失(实际是没有权限),这些权限要设置为Y,例如:

update user set
  `Select_priv` = 'Y',
  `Insert_priv` = 'Y',
  `Update_priv` = 'Y',
  `Delete_priv` = 'Y',
  `Create_priv` = 'Y',
  `Drop_priv` = 'Y',
  `Reload_priv` = 'Y',
  `Shutdown_priv` = 'Y',
  `Process_priv` = 'Y',
  `File_priv` = 'Y',
  `Grant_priv` = 'Y',
  `References_priv` = 'Y',
  `Index_priv` = 'Y',
  `Alter_priv` = 'Y',
  `Show_db_priv` = 'Y',
  `Super_priv` = 'Y',
  `Create_tmp_table_priv` = 'Y',
  `Lock_tables_priv` = 'Y',
  `Execute_priv` = 'Y',
  `Repl_slave_priv` = 'Y',
  `Repl_client_priv` = 'Y',
  `Create_view_priv` = 'Y',
  `Show_view_priv` = 'Y',
  `Create_routine_priv` = 'Y',
  `Alter_routine_priv` = 'Y',
  `Create_user_priv` = 'Y',
  `Event_priv` = 'Y',
  `Trigger_priv` = 'Y'
  where user='root' and host='localhost';

转自: https://blog.csdn.net/nianzhi1202/article/details/77754252

weinxin
公众号
扫码订阅最新深度技术文,回复【资源】获取技术大礼包
MySQL最后更新:2023-10-19
小熊