在修改了数据库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…
建议云端数据库要么做好备份 要么别用那么脑残的密码了
- 添加用户
# 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;
- 更新用户权限(拥有全部权限)
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;