使用Jenkins访问同一实例上的mysql文件

使用Jenkins访问同一实例上的mysql文件

我在同一个机器上安装了 Jenkins 并运行 mysql 服务器。我的一个 jenkins 作业应该打包 /var/lib/mysql 文件夹,但我收到以下错误

tar: /var/lib/mysql/mysql: Cannot open: Permission denied

我已将 jenkins 用户添加到 mysql 组,但这对我没有任何作用。

有人有什么想法吗?

感谢您的帮助

答案1

从内存中可以看到,mysql 数据库目录通常仅设置用户权限。组权限为 0。即 0700 或类似权限。

如果在运行 tar 时写入数据,则按照您目前的方式执行此备份可能会导致损坏。因此,不要直接使用 tar,而是使用 mysqldump 备份整个数据库。向 mysql 添加一个有权运行所有数据库备份的 jenkins 用户。然后对生成的文件进行 gzip 压缩。我将创建一个脚本来执行此操作并从 Jenkins 调用它。

答案2

运行这些命令允许我将文件夹

find /var/lib/mysql -type d -exec sudo chmod 2775 {} +
find /var/lib/mysql -type f -exec sudo chmod 0664 {} +

相关内容