Update default datadir for debian to be /var/lib/mariadb#5059
Conversation
There was a problem hiding this comment.
Code Review
This pull request updates the default data directory for Debian-based installations in cmake/install_layout.cmake by changing INSTALL_MYSQLDATADIR_DEB from /var/lib/mysql to /var/lib/mariadb. No review comments were provided for this change, and I have no feedback to provide.
|
Questions:
@ottok, what do you think? |
|
Thanks @lvoytek
Ubuntu 26.04 already carrying the patch for 11.8_+
I opened https://jira.mariadb.org/browse/MDEV-39461 But yes, we'll need the scripts too.
Like Debian - straight from debian/rules
I do like the last plan. Question is, do we stop on Deb changes or include RPM too?
Its already in Debian sid. https://salsa.debian.org/mariadb-team/mariadb-server/-/merge_requests/155 I was hoping to see more of the script changes from that here. Having a modified subset in 11.8 to handle Ubuntu upgrade to our vendor ones would be good too to solve MDEV-39461. Probably like a earlier version in salsa merge request 155 that dropped the config file in the post install without changing the default. |
gkodinov
left a comment
There was a problem hiding this comment.
This is a preliminary review. Can you please describe the problem you're solving? I.e. what happens now and how is that wrong. And how your solution goes about solving the problem, i.e. how is the current behavior modified.
Ideally this should happen in an MDEV prior to submitting a PR for it, but I can also file one for you if you put your rationale into the PR itself.
|
If I am not mistaken, the submitter of this patch (Canonical employee) had some discussions with Sergei about switching the datadir to This was already included in Debian and Ubuntu 1:11.6.8. The commit https://salsa.debian.org/mariadb-team/mariadb-server/-/commit/2bf6f4d3e1cb090ad5ba7f443ae02af5047c5391 in Debian is a bit more verbose than the commit message/description in this PR. I approved this change in Debian with the assumption that upstream will eventually follow in some future version. This PR only updates the _DEB variable but you might as well also update the equivalent _RPM variable. From my point of view this would be fine to merge as-is, and perhaps MariaDB devs can follow-up with whatever additional changes are needed to make Upgrades of old installs will continue to use |
|
I like this @lvoytek, your commit in Debian changes a lot more than this PR, are the other changes needed? Why did you omit them here? |
|
I'm happy to include the packaging delta here too, I'll update the pr with it soon! |
Match the existing datadir setting for Debian and Ubuntu, which was changed from /var/lib/mysql to /var/lib/mariadb in 1:11.8.6-5.
Check for MariaDB data in /var/lib/mariadb. If there is none, then check in /var/lib/mysql instead. If the data there belongs to MariaDB, then continue using it. If it belongs to MySQL, then ignore it and handle the folder setup as a new install. Likewise, stop using .flag files to determine version numbers. With the guarantee that all mariadb installs will have an upgrade info file in the data directory, it is no longer necessary to determine the version from the .flag file. Update detection logic to reflect this, and clear remaining flag file logic other than flag file removal.
…iadb MySQL log files and the mysql user will be removed if mariadb owns them. The log files should be split eventually though.
Update logic for handling the new /var/lib/mariadb datadir. For legacy installs, drop in an additional file, 99-legacy-datadir.cnf, that overrides the value back to /var/lib/mysql. Also remove this new file on purge. Mention the default change in 50-server.cnf. Finally, set the default datadir in mariadb-server mariadb.init to /var/lib/mariadb.
list of /var/lib/mariadb files as test artifact
c1c3f3c to
6367619
Compare
|
Sorry for the delay, all relevant changes for the datadir update should now be here |
ottok
left a comment
There was a problem hiding this comment.
I reviewed and approved the original changes in Debian/Ubuntu, and I support having these upstreamed to MariaDB 'main' to be in effect in the next upstream release.
Hopefully someone can holistically review the MariaDB packaging after this is merged and add RPM changes and whatever is needed so that upstream can announce /var/lib/mariadb as the new datadir location in the next new version release.
CI is failing on two jobs. They should be checked before merging this. Unfortunately latest commit on 'main' is also failing, so I guess contributors to MariaDB shouldn't expect their PRs to pass CI either, but still good to take a look if there is something relevant looking.
(Upstream is not using Salsa CI, so the Salsa CI update is moot and the rest of the Salsa CI won't be passing anyway, but having this commit won't make anything worse either.)
Match the existing datadir setting for Debian and Ubuntu, which was changed from /var/lib/mysql to /var/lib/mariadb in 1:11.8.6-5.
Existing Debian patch: https://salsa.debian.org/mariadb-team/mariadb-server/-/blob/debian/latest/debian/patches/set-default-datadir-to-var-lib-mariadb.patch