今天在Mysql中用grant授权用户遇见了 ERROR 1044 (42000): Access denied 错误,说明没有权限,但是明明是用root登陆,后来了解到root用户有多个host,而每个host的权限是不一样的。
默认 mysql -uroot -p登陆,host应该是localhost。
而用查询发现:
select * from mysql.user\G;
root@localhost的Grant_priv: 是N,[email protected]的则是Y。
所以用
mysql -u root -p -h 127.0.0.1
重新登陆便可以解决问题了。
也可以修改mysql.user表
UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root'; FLUSH PRIVILEGES; GRANT ALL ON *.* TO 'root'@'localhost';