首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mariabackup系统文件权限

mariabackup系统文件权限
EN

Database Administration用户
提问于 2022-11-07 06:11:56
回答 1查看 283关注 0票数 0

我在Ubuntu22.04服务器上有一个MariaDB10.6.7的实例,并且我正在尝试使用mariabackup备份特定的数据库。

代码语言:javascript
复制
mariabackup --backup --user="my_test_user" --target-dir=/tmp/mdb_test --verbose

但总是以

代码语言:javascript
复制
[00] 2022-11-07 06:57:13 mariabackup: Generating a list of tablespaces
[00] 2022-11-07 06:57:13 Can't open dir ./testdb

我遵循了如下所示的创建备份用户的说明:https://mariadb.com/kb/en/mariabackup-overview/#authentication-and-privileges唯一的区别是,我选择了"unix“进行身份验证,以省略系统上的密码文件。

受影响的用户'my_test_user‘是mysql组的成员。

但是,身份验证是成功的,但是,如果出现以下错误,则mariabackup将失败:

代码语言:javascript
复制
[00] 2022-11-07 06:57:13 Connecting to MariaDB server host: localhost, user: my_test_user, password: not set, port: not set, socket: /run/mysqld/mysqld.sock
[00] 2022-11-07 06:57:13 Using server version 10.6.7-MariaDB-2ubuntu1.1
mariabackup based on MariaDB server 10.6.7-MariaDB debian-linux-gnu (x86_64)
[00] 2022-11-07 06:57:13 uses posix_fadvise().
[00] 2022-11-07 06:57:13 cd to /var/lib/mysql/
[00] 2022-11-07 06:57:13 open files limit requested 0, set to 1024
[00] 2022-11-07 06:57:13 mariabackup: using the following InnoDB configuration:
[00] 2022-11-07 06:57:13 innodb_data_home_dir = 
[00] 2022-11-07 06:57:13 innodb_data_file_path = ibdata1:12M:autoextend
[00] 2022-11-07 06:57:13 innodb_log_group_home_dir = ./
2022-11-07  6:57:13 0 [Note] InnoDB: Number of pools: 1
[00] 2022-11-07 06:57:13 mariabackup: Generating a list of tablespaces
[00] 2022-11-07 06:57:13 Can't open dir ./testdb
[00] 2022-11-07 06:57:13 merror: xb_load_tablespaces() failed with error Generic error.

我可以看到,cd到默认的datadir是可以的,但是不能访问数据库目录。这是合理的,因为/var/liq/mysql/testdb有700个权限,所以组完全没有权限。正如我所看到的,这是mysql/mariadb文件和文件夹的默认权限。我试着以mysql的身份运行

代码语言:javascript
复制
mariabackup --backup --user="mysql" --target-dir=/tmp/mdb_test --verbose

但是,由于各种原因(没有密码、没有登录shell等),这也失败了;我想mysql用户不打算以这种方式使用,所以.。

现在官方的mariadb/mariabackup文档说https://mariadb.com/kb/en/mariabackup-overview/#file-system-permissions

Mariabackup必须从文件系统读取MariaDB的文件。因此,当您将Mariabackup作为特定的操作系统用户运行时,您应该确保用户帐户有足够的权限读取这些文件。如果您使用的是Linux,并且安装了带有包管理器的MariaDB,那么MariaDB的文件可能属于mysql用户和mysql组。

现在我想知道如何才能“以正确的方式”做到这一点。我已经在mariadb文档中找到了这个https://mariadb.com/kb/en/specifying-permissions-for-schema-data-directories-and-tables/,并且已经导出了umask_dir=750变量并重新启动了服务器,但是到目前为止,这并没有帮助,仍然得到了相同的错误。

也许有人能帮我弄清楚我错过了什么。如果我将testdb目录的权限更改为750,则一切正常,但我担心在高效的情况下这样做不是个好主意。

任何提示都非常欢迎。

EN

回答 1

Database Administration用户

发布于 2022-11-07 07:22:01

但是,无法访问数据库目录。这是合理的,因为/var/liq/mysql/testdb有700个权限,所以组完全没有权限。

是的,mariabackup需要访问磁盘文件上的物理文件,因此需要在目录和文件上使用g+rX

导出umask_dir=750变量并重新启动服务器,但到目前为止这并没有帮助,仍然得到了相同的错误。

只影响新目录/数据库。并注意系统异常。

如果我将testdb目录的权限更改为750,则一切正常,但我担心在高效的情况下这样做不是个好主意。

如果my_test_user是唯一有mysql组的,那么它是无害的。

或者让mysql@localhost成为经过身份验证的"unix“用户,并以该用户的身份运行备份。那么用户文件/目录权限已经正确了。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/319276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档