今天在使用非【root】用户执行【xtrabackup】的时候遇到了如题所示的错误;
错误原因很明显,使用的用户权限不够。

具体错误的现场如下:

以【root】用户登录数据库,看看我的这个用户的当前状态:

可以看到,xtrabk用户的权限是创建时候的默认权限状态

因此,上面xtrabackup的报错中提到的【show engine innodb status】肯定也是没有权限查看的:

解决问题:

为xtrabackup的执行用户分配需要的权限:

MySQL数据库用户的权限:

  1. MyISAM引擎:Xtrabackup中的Inoobackup备份MyISAM的时候需要用到权限:RELOAD / LOCK TABLES
  2. 查看二进制文件(BINLOG)写到了哪里,需要的权限:REPLICATION CLIENT
  3. 查看MySQL相关连接的进程信息,需要的权限:PROCESS
  4. 在复制环境中,如果需要执行【stop slave / start slave】,则需要权限:SUPER
  5. Xtrabackup自身会在MySQL中创建一些对它本身有用的表对象,需要的权限:create / insert / select;可选权限:create tablespace

Linux操作系统用户的权限:

  1. 对相关【备份目录】,应该具有写入与读取的权限【wrx】
  2. 对MySQL的【数据目录 / datadir】,应该需要可读权限【rx】

然后,再次用【xtrabk】去执行【show engine innodb status】:

可以看到,这次就没问题了。

然后,再做一次文首的xtrabackup的备份,就没问题了;
备份执行完成后的xtrabackup的日志如下:


Finished,…

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

隐藏
变装