After switching to a container image with bootc switch, systemd failed to start mysqld because required runtime directories were missing or had wrong permissions. Adding tmpfiles entries with correct ownership ensures systemd creates the necessary directories at boot and gives them correct permissions, allowing the mysql daemon to start. "In a container build, you can write to '/var'. However, this will have a semantic similar to a Dockerfile VOLUME instruction; the content from the container image is only copied at initial install time. Any subsequent system updates will not by default see new changes. It's recommended instead to use e.g. systemd tmpfiles.d as a way to ensure that newly added state "reconciles" across upgrades as desired." https://docs.fedoraproject.org/en-US/bootc/filesystem/#_filesystem_bind_mount_var This covers all the files in /var sicne we only ship these as can be seen here: find | grep /var/ ./mysql8.4-server-8.4.5-1.fc43.x86_64.rpm/var/lib ./mysql8.4-server-8.4.5-1.fc43.x86_64.rpm/var/lib/mysql ./mysql8.4-server-8.4.5-1.fc43.x86_64.rpm/var/lib/mysql-files ./mysql8.4-server-8.4.5-1.fc43.x86_64.rpm/var/lib/mysql-keyring ./mysql8.4-server-8.4.5-1.fc43.x86_64.rpm/var/log ./mysql8.4-server-8.4.5-1.fc43.x86_64.rpm/var/log/mysql The '/usr' directory is not persistent therefore this change does not affect it and the '/etc' directory is merged in a different way and also not under the 'mysql:mysql' user |
||
|---|---|---|
| .fmf | ||
| .gitignore | ||
| boost-1.57.0-mpl-print.patch | ||
| boost-1.58.0-pool.patch | ||
| ci.fmf | ||
| gating.yaml | ||
| my.cnf.in | ||
| mysql8.4.rpmlintrc | ||
| mysql8.4.spec | ||
| mysql_config_multilib.sh | ||
| mysql-check-socket.sh | ||
| mysql-file-contents.patch | ||
| mysql-flush-logrotate.patch | ||
| mysql-install-test.patch | ||
| mysql-paths.patch | ||
| mysql-prepare-db-dir.sh | ||
| mysql-rpath.patch | ||
| mysql-scripts-common.sh | ||
| mysql-scripts.patch | ||
| mysql-sharedir.patch | ||
| mysql-wait-stop.sh | ||
| mysql.service.in | ||
| mysql.tmpfiles.d.in | ||
| mysql@.service.in | ||
| plans.fmf | ||
| README.mysql-docs | ||
| README.mysql-license | ||
| rh-skipped-tests-list-arm.list | ||
| rh-skipped-tests-list-base.list | ||
| rh-skipped-tests-list-ppc.list | ||
| rh-skipped-tests-list-s390.list | ||
| rpminspect.yaml | ||
| server.cnf.in | ||
| sources | ||
MySQL is distributed under GPL v2, but there are some licensing exceptions that allow the client libraries to be linked with a non-GPL application, so long as the application is under a license approved by Oracle. For details see 'The Universal FOSS Exception, Version 1.0': https://oss.oracle.com/licenses/universal-foss-exception/ A predecessor of that license exception is now deprecated 'FOSS License Exception': http://www.mysql.com/about/legal/licensing/foss-exception/ Some innobase code from Percona and Google is under BSD license. Some code related to test-suite is under LGPLv2.