* Fri Mar 07 2025 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-9.sme

- upgrade to support mariadb 11.4 [SME: 12930]
  move mariadb-upgrade to mysql.init unit, remove duplicate in 00_restore_dumped_dbs and 10mysql_upgrade
  add our tmp.d
  add post action dnf script
  update mariadb.service.d/  content
  set default to utfmb4
- TODO mysql.dump filtering [SME: 12592]
- TODO feedback plugin [SME: 12897]

* Sun Jan 26 2025 Jean-Philippe Pialasse <jpp@koozali.org> 11.0.0-8.sme
- prestart script requires daemontools bins [SME: 12566]
This commit is contained in:
2025-03-07 22:32:45 -05:00
parent 34effb2c39
commit afcd41481e
11 changed files with 57 additions and 31 deletions

View File

@@ -0,0 +1,2 @@
mariadb*:any:/sbin/e-smith/signal-event smeserver-mysql-update
MariaDB*:any:/sbin/e-smith/signal-event smeserver-mysql-update

View File

@@ -2,7 +2,6 @@
( cat /home/e-smith/db/mysql/mysql.dump ;
cat /var/lib/mysql.private/set.password ) | mysql || exit 1
/usr/bin/mysql_upgrade
/bin/rm /var/run/mariadb/mariadb.pid
/usr/bin/systemctl restart mariadb.service
for i in $(seq 1 20);

View File

@@ -1,16 +0,0 @@
#!/bin/sh
/usr/bin/mysql_upgrade
/bin/rm /var/run/mariadb/mariadb.pid
/usr/bin/systemctl restart mariadb.service
for i in $(seq 1 20);
do
if [ -f /var/run/mariadb/mariadb.pid ]
then
exit 0
fi
echo waiting for mysqld to restart
sleep 1
done
echo mysqld failed to restart
exit 1

View File

@@ -0,0 +1,3 @@
[client]
default-character-set = utf8mb4

View File

@@ -0,0 +1,3 @@
[mysql]
default-character-set = utf8mb4

View File

@@ -0,0 +1,11 @@
{
# starting mariadb 10.6 , utf8 changes to utf8mb3 (as utf8 used to be an alias of utfmb3)
# utf8 will soon be an alias of utf8mb4, and more and mroe db are demanding utf8mb4
# so we are better default to it in 2025.
# old-mode will force utf8mb3 for character-set-system
}
character-set-client-handshake = FALSE
collation-server = utf8mb4_unicode_ci
init-connect = 'SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci'
character-set-server = utf8mb4
old-mode = ''

View File

@@ -4,23 +4,32 @@ After=syslog.target
After=network.target
[Service]
#allow our expand-templates
#allow to run as root pre and post
PermissionsStartOnly=true
#reset
ExecStartPre=
ExecStartPre=/usr/bin/install -d /var/run/mariadb -o mysql -g mysql -m 0755
# add mariadb >=10.6 specifics
ExecStartPre=/bin/sh -c "systemctl unset-environment _WSREP_START_POSITION"
ExecStartPre=/bin/sh -c "[ ! -e /usr/bin/galera_recovery ] && VAR= || \
VAR=`/usr/bin/galera_recovery`; [ $? -eq 0 ] \
&& systemctl set-environment _WSREP_START_POSITION=$VAR || exit 1"
#ours : we need root user as + and ! are not yet supported
ExecStartPre=/usr/libexec/mysql-check-socket
#ExecStartPre=/usr/libexec/mysql-check-socket
ExecStartPre=-/sbin/e-smith/service-status mariadb
ExecStartPre=-/sbin/e-smith/expand-template /var/lib/mysql.private/set.password
ExecStartPre=-/sbin/e-smith/expand-template /root/.my.cnf
ExecStartPre=-/sbin/e-smith/expand-template /etc/my.cnf
# create db here if needed
ExecStartPre=/sbin/e-smith/systemd/mariadb-initialize
#reset
ExecStart=
#ours
ExecStart=/usr/libexec/mysqld \
ExecStart=/usr/sbin/mariadbd \
--defaults-file=/etc/my.cnf \
--basedir=/usr \
--datadir=/var/lib/mysql \

View File

@@ -11,8 +11,10 @@ IgnoreSIGPIPE=no
KillMode=process
GuessMainPID=no
RemainAfterExit=yes
ExecStart=-/usr/bin/mariadb-upgrade
ExecStart=/sbin/e-smith/systemd/mysql.init start
ExecStop=/sbin/e-smith/systemd/mysql.init stop
SyslogIdentifier=mysql.init
[Install]
WantedBy=sme-server.target

View File

@@ -0,0 +1 @@
d /var/run/mariadb 0755 mysql mysql -