连接mysql问题: 在修改了数据库root账户的密码后 远程连接提示密码错误的问题

在修改了数据库root账户的密码后 提示密码错误的问题

set password for root @localhost = password('root');

使用此语句修改密码后 会出现密码连接不上的问题

# 查询用户表可得
select Host,User,authentication_string from user;

# 第一个root的密码是 加密后的"root"
# 第二个root的密码是 加密后的"123456"
# 而第一个只允许本机登录 第二个允许(%)所有主机登录
+-----------+---------------+-------------------------------------------+
| Host      | User          | authentication_string                     |
+-----------+---------------+-------------------------------------------+
| localhost | root          | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
| localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| localhost | mysql.sys     | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| %         | root          | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+---------------+-------------------------------------------+

所以我们可以

UPDATE user SET authentication_string = password('root') WHERE user = 'root' AND host = '%'

最后一定要记得

flush privileges;

2021/4/21 连接云端数据库时出现1130报错 提示当前ip地址不被允许连接到服务器

查了下user表之后发现 host = '%' 的用户不见了 实在没想通是怎么回事
同时学习了两条操作用户的命令

在这里插入图片描述mlgb的 找到原因了
这tm…
建议云端数据库要么做好备份 要么别用那么脑残的密码了

  1. 添加用户
# authentication_string在user表里就是password
GRANT USAGE ON *.* TO `USER`@`HOST` IDENTIFIED BY `authentication_string` WITH GRANT OPTION;
GRANT USAGE ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
  1. 更新用户权限(拥有全部权限)
GRANT ALL PRIVILEGES ON *.* TO `USER` @`HOST` IDENTIFIED BY `authentication_string` WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'root' @'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

最后一定要记得

flush privileges;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 设置root用户密码123456: 在安装完成后,打开命令行界面,使用以下命令登录MySQL: ``` mysql -u root -p ``` 输入默认的空密码进入MySQL后,使用以下命令修改root用户的密码: ``` ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; ``` 这里的123456是你想要设置的新密码修改完成后,使用以下命令退出MySQL: ``` exit; ``` 2. 开通用户远程连接: 默认情况下,MySQL只允许本地连接。如果要开通用户远程连接,需要进行以下操作: 1)登录MySQL,使用以下命令查看当前的用户和其权限: ``` SELECT user,host FROM mysql.user; ``` 2)使用以下命令创建新用户(例如:testuser): ``` CREATE USER 'testuser'@'%' IDENTIFIED BY 'testpassword'; ``` 这里的testuser和testpassword分别是你想要创建的新用户和密码。 3)使用以下命令给新用户授权: ``` GRANT ALL PRIVILEGES ON *.* TO 'testuser'@'%'; ``` 这里的*.*表示授权给新用户全部数据库和表的权限,%表示允许任何IP地址进行连接。 4)使用以下命令刷新权限: ``` FLUSH PRIVILEGES; ``` 5)修改MySQL配置文件my.cnf,在[mysqld]下面添加以下配置: ``` bind-address = 0.0.0.0 ``` 这里的0.0.0.0表示允许任何IP地址进行连接。 6)重启MySQL服务,使配置生效。 现在,你可以使用连接字符串"mysql -u testuser -p -h xxx.xxx.xxx.xxx"远程连接MySQL,其中xxx.xxx.xxx.xxx是MySQL服务器的IP地址。输入新用户的密码即可登录。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值