如果您在设置修改权限时,讲mysql.user表中的所有用户删除点,然后给root用户%权限
授权mysql>grant all on *.* to 'root'@'%' identified by 'root' with grant option; PS:如果授权时没有写 with grant option。
做主从时,给主从用户授权时,会报错,不能进行权限修改。解决办法如下:
例:
查看用户权限
mysql> show grants for root@'%';
+--------------------------------------------------------------------------------------------------------------------------------+
| Grants for root@% |
+--------------------------------------------------------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*81F5E21E35407D884A6CD4A731AEBFB6AF209E1B' WITH GRANT OPTION |
+--------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> desc mysql.user;
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------------+-----------------------------------+------+-----+-----------------------+-------+
| Grant_priv | enum('N','Y') | NO | | N | |
直接update,将grant全部改成Y
mysql>update mysql.user set grant_priv='Y' where user='root';
mysql>flush privileges;
查看grant_priv是不是全部改成Y
mysql>select * from mysql.user\G;
这样就可以重新grant赋权了,如果还报错,重新登录一下mysql就可以解决了。