mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
ERROR 1044 (42000): Access denied for user 'root'@'localhost' to database 'zabbix'
查看root用户有没有授权权限
mysql> select host,user,grant_priv,Super_priv from mysql.user;
+-----------+----------+------------+------------+
| host | user | grant_priv | Super_priv |
+-----------+----------+------------+------------+
| 127.0.0.1 | root | Y | Y |
| localhost | root | N | Y |
| 10.0.3.% | repluser | N | N |
+-----------+----------+------------+------------+
3 rows in set (0.00 sec)
可以看到localhost的grant_priv的值为N,也就是说root用户不能授权给其他用户,所以我们需要把这个值改为Y
mysql> update mysql.user set grant_priv='N' where host='localhost';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
改完之后最好重启一下服务器(我没重启,所以还是报那个错,重启后就正常了)
mysql> select user,host,Grant_priv,super_priv from mysql.user;
+----------+-----------+------------+------------+
| user | host | Grant_priv | super_priv |
+----------+-----------+------------+------------+
| root | 127.0.0.1 | Y | Y |
| root | localhost | Y | Y |
| repluser | 10.0.3.% | N | N |
+----------+-----------+------------+------------+
3 rows in set (0.00 sec)
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)
mysql>
查看用户权限
SHOW GRANTS FOR 'root'@'%';
分配用户权限
grant SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, PROCESS, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE on *.* to 'ezadmin'@'%';
flush privileges;
本文出自http://www.cnblogs.com/biaopei/p/8376941.html