mysql 修改root密码 修改账户登录host

项目github地址:bitcarmanlee easy-algorithm-interview-and-practice
欢迎大家star,留言,一起学习进步

1.忘了root密码

远程服务器起了一个mysql服务,里面有个hive账户,在远程服务器能通过命令行用mysql -hlocalhost -uxxx -pxxx的方式登录,但是用navicat客户端,怎么也登录不上,而且navicat显示的还是我自己机器的ip地址。初步怀疑,是mysql里的A账户密码没有设置正确。于是需要用root账号对hive账户重新进行设置。坑爹的是,mysql也不是我布的。而且测试环境,也不知道该找谁要密码。那就使出终极武器吧:修改root密码。

2.重置mysql root密码。

首先注意的一点:mysql的root账户与服务器的root账户不是同一个概念,不要混为一谈。

首先,停掉mysql服务:

sudo service mysql stop

如果有服务器的root账户,自然就不用sudo了,下面所有的操作也是一样。上面的命令适用于Ubuntu和Debian。CentOS、Fedora和RHEL下使用mysqld替换mysql。下面所有的操作也是一样。

然后,再以安全模式启动mysql:

sudo mysqld_safe --skip-grant-tables --skip-networking &  

这样我们就可以直接用root登录,无需密码:

mysql -u root 

这样,我们就用root账户登录了mysql。
然后,就可以重置root密码了:

mysql> use mysql;  
mysql> update user set password=PASSWORD("mynewpassword") where User='root';  
mysql> flush privileges;  

重置完毕以后,退出mysql。然后再将mysql服务启动:

sudo service mysql restart  

接下来,就是用root账户登录了:

mysql -u root -pmynewpassword 

3.修改A账户相关权限

用root账号登录mysql以后,接下来看看A账号的相关信息:

mysql> use mysql;
Database changed
mysql> select User, Host from user where User='hive';
+------+--------------+
| User | Host         |
+------+--------------+
| hive | 127.0.0.1    |
+------+--------------+

这一下就明白了。尼玛难怪navicat客户端登不了。hive账户的host只有127.0.0.1,自然只能在本机登录了。

mysql> update user set Host='%' where User='hive';

将hive账户设置为所有机器均可登录,然后再刷新一下权限:

mysql> flush privileges;

再查看一把:

mysql> select User, Host from user where User='hive';
+------+------+
| User | Host |
+------+------+
| hive | %    |
+------+------+

至此为止,大功告成!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值