mysql "select command denied to user root" 问题解决

mysql命令下执行下面语句:
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON mealbooker.* TO 'root'@'%' identified by 'root';
flush privileges;
mysql 创建用户并授权:
-- mysql创建一个外网用户
create user 'root'@'%' identified by 'root'; 
-- 授予外网用户可以连接数据库的所有权限
grant all privileges on `mysql`.* to 'root'@'%' identified by 'root'; //1
-- 刷新
flush privileges;  
注://1 数据库名.*,identified by 'xxx' 表示密码
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当遇到ERROR 1142 (42000): SELECT command denied to user 'root'@'localhost' for table 'user'这类错误时,这通常表示MySQL服务器拒绝了指定用户(在这个例子中是'root')从本地主机('localhost')对'table user'执行SELECT查询的操作。解决这个问题的方法取决于具体的情况: 1. **权限设置**:检查你的MySQL账户是否有足够的权限访问'table user'。如果是权限问题,你可以通过GRANT语句重新授予必要的权限给root用户。例如: ```sql GRANT SELECT ON user.* TO 'root'@'localhost'; ``` 2. **安全配置**:如果这是服务器的安全策略导致的,可能是MySQL的`select_priv`权限被限制了。查看并调整`mysql.user`表中对应用户的权限。 3. **身份验证问题**:确认root用户的登录信息是否正确,可能需要更新密码或使用正确的认证插件。 对于第二个错误ERROR 1142 (42000): UPDATE command denied...以及权限变化的情况,可能是因为误操作导致root用户的权限被撤销。要恢复这些权限,可以按照以下步骤操作: 1. **重置权限**:如果你已经撤销了所有权限,可以尝试重新授权,如: ```sql REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'root'@'localhost'; FLUSH PRIVILEGES; GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'your_password'; ``` 替换'your_password'为你希望设置的新密码。 2. **撤销撤销**:如果上述命令无效,可能需要更深入地检查并修复REVOKE语句的影响。这可能涉及到手动查找并还原相应的权限设置。 请注意,每次操作前最好备份数据库以防意外。如果问题依然存在,可能需要咨询数据库管理员或查阅更详细的MySQL文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值