容器、主机、容器间权限相关
两个问题,原因是一样的
为什么 docker mysql 建出来的 /var/lib/mysql 用户是 systemd-coredump
是 systemd-coredump 只是碰巧而已
因为 mysql 容器内的 mysql 用户 ID 是 999
1 | # passwd in mysql container |
而主机上的 999 为 systemd-coredump
1 | # passwd on host |
为什么 percona-xtrabackup 备份容器中的 mysql 显示无权限
1 | 2023-07-24T02:47:58.476552-00:00 0 [ERROR] [MY-012592] [InnoDB] Operating system error number 13 in a file operation. |
因为 percona-xtrabackup 容器内的 mysql 用户又是其它 ID
1 | # passwd in xtrabackup container |
可以在 docker run 时指定用户 -u 解决这个问题
1 | docker run --rm -u 999:999 --volumes-from [some-mysql] -v ./backup:/backup percona/percona-xtrabackup xtrabackup --backup --datadir=/var/lib/mysql/ --target-dir=/backup --user=user --password=password |