mysql无密码登录

对于刚装的mysql不能远程登录,这是常见的问题,但本地登录都是没有问题的,因为root用户对应的host为127.0.0.1或者localhost默认都是存在的,如图


今天把root对应的本地连接的两条记录删除了(实验,项目中别乱删),发现既不能远程连接也不能本地连接,只能使用无密码登录了
第一步:停止mysql服务
/etc/init.d/mysqld stop
第二步:跳过密码验证

/usr/bin/mysqld_safe --skip-grant-tables 或 mysqld_safe --skip-grant-tables 跳过权限表启动mysql 显示

如果命令后加了&,则可以使用Ctrl+c退出,使其后台运行,第三步也可以不用另开窗口


第三步:另开一个窗口(没加&)
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'   

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值