在备份mysql数据库时,备份脚本执行报错了:“mysqldump: Error: 'Access denied; you need (at least one of) the PROCESS privilege(s) for this operation' when trying to dump tablespaces”,从该错误看是权限的问题,本以为数据库未备份成功,不过确认了下,备份的库是没有问题的。

备份脚本如下:

mysqldump -utest -p123456 student > student.sql

该脚本执行完后报错:

mysqldump: Error: 'Access denied; you need (at least one of) the PROCESS privilege(s) for this operation' when trying to dump tablespaces

 原因是test用户缺少PROCESS权限,可通过以下方式解决:

1、以root用户登录msyql:msyql -uroot -p

2、将process权限赋给用户test:GRANT PROCESS ON *.* TO 'test'@'localhost';

此时又报错了:ERROR 1410 (42000): You are not allowed to create a user with GRANT

原因可能是用户与主机不一致,于是查询用户信息:

mysql> select User,Host from mysql.user;
+--------------------+-----------+
| User               | Host      |
+--------------------+-----------+
| test               | %         |

可以看到,test用户对应的host为“%”

于是,修改上面的授权语句,将localhost修改为%,即:GRANT PROCESS ON *.* TO 'test'@'%';

再次执行

GRANT PROCESS ON *.* TO 'test'@'%';

flush privileges;

最后再次执行备份数据库脚本,不再有报错信息。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐