mysqlbackup: ERROR: Opening of file /var/lib/mysql/ibdata1 failed. Error code: 13, Permission denied

mysqlbackup: ERROR: Opening of file /var/lib/mysql/ibdata1 failed. Error code: 13, Permission denied

我正在尝试使用 mysqlbackup 备份我的数据库,但我一直收到此错误,我不知道为什么会提到“权限被拒绝”错误。

我已经关闭了 SeLinux,因为我认为这是原因,但 selinux 日志中也没有任何内容,我也可以使用正常命令登录 mysql:mysql -uuser -密码。

可以在这里看到带有输出的整个密码:http://pastie.org/10798013

这是因为 MySQLBackup 要求它是 运行 根用户才能访问所需的资源。通常你会简单地 运行 sudo mysqlbackup,但我相信默认情况下这对这个程序不起作用。

在这种情况下,最快的做法是 运行 作为 root 用户执行命令。为此,您需要做的就是打开一个终端并输入:

sudo -s

系统将提示您输入密码,然后终端将显示 root@... 而不是正常的 user@...。这表明您现在是 root 用户。

现在您可以再次执行您的代码了:

mysqlbackup --compress --user=root --socket=/var/lib/mysql/mysql.sock --backup-dir=/home/user/backup backup

完成后,请记住只需键入 exit 即可退出 root。请记住,除非别无选择,否则不要使用 root 用户;很容易不小心更改重要内容 files/folders 除非您确定自己在做什么。

了解更多

值得了解更多关于以 root 身份登录,甚至调整配置以使 mysqlbackup 不需要 root,所以这里有一些链接:

延迟响应,但是当 mysql 守护程序为 运行

时尝试恢复 differential/incremental 备份时会发生此精确错误

如果您能够使用以下命令连接到您的数据库 mysql -uuser -ppassword 那么你只能恢复完整备份

如果没有,那么您可以恢复 differential/incremental 备份,但不能恢复完整

换句话说:你应该关闭你的服务(net stop mysql-8.0 对我来说)