summaryrefslogtreecommitdiffstats
path: root/support-files/rpm
diff options
context:
space:
mode:
Diffstat (limited to 'support-files/rpm')
-rw-r--r--support-files/rpm/client.cnf13
-rw-r--r--support-files/rpm/enable_encryption.preset20
-rw-r--r--support-files/rpm/my.cnf11
-rw-r--r--support-files/rpm/mysql-clients.cnf23
-rw-r--r--support-files/rpm/plugin-postin.sh3
-rw-r--r--support-files/rpm/server-postin.sh87
-rw-r--r--support-files/rpm/server-posttrans.sh15
-rw-r--r--support-files/rpm/server-postun.sh12
-rw-r--r--support-files/rpm/server-prein.sh67
-rw-r--r--support-files/rpm/server-preun.sh18
-rw-r--r--support-files/rpm/server.cnf46
-rw-r--r--support-files/rpm/shared-post.sh1
12 files changed, 316 insertions, 0 deletions
diff --git a/support-files/rpm/client.cnf b/support-files/rpm/client.cnf
new file mode 100644
index 00000000..9028505a
--- /dev/null
+++ b/support-files/rpm/client.cnf
@@ -0,0 +1,13 @@
+#
+# These two groups are read by the client library
+# Use it for options that affect all clients, but not the server
+#
+
+
+[client]
+
+# This group is not read by mysql client library,
+# If you use the same .cnf file for MySQL and MariaDB,
+# use it for MariaDB-only client options
+[client-mariadb]
+
diff --git a/support-files/rpm/enable_encryption.preset b/support-files/rpm/enable_encryption.preset
new file mode 100644
index 00000000..722db7e5
--- /dev/null
+++ b/support-files/rpm/enable_encryption.preset
@@ -0,0 +1,20 @@
+#
+# !include this file into your my.cnf (or any of *.cnf files in /etc/my.cnf.d)
+# and it will enable data at rest encryption. This is a simple way to
+# ensure that everything that can be encrypted will be and your
+# data will not leak unencrypted.
+#
+# DO NOT EDIT THIS FILE! On MariaDB upgrades it might be replaced with a
+# newer version and your edits will be lost. Instead, add your edits
+# to the .cnf file after the !include directive.
+#
+# NOTE that you also need to install an encryption plugin for the encryption
+# to work. See https://mariadb.com/kb/en/mariadb/data-at-rest-encryption/#encryption-key-management
+#
+[mariadb]
+aria-encrypt-tables
+encrypt-binlog
+encrypt-tmp-disk-tables
+encrypt-tmp-files
+loose-innodb-encrypt-log
+loose-innodb-encrypt-tables
diff --git a/support-files/rpm/my.cnf b/support-files/rpm/my.cnf
new file mode 100644
index 00000000..5cda317d
--- /dev/null
+++ b/support-files/rpm/my.cnf
@@ -0,0 +1,11 @@
+#
+# This group is read both by the client and the server
+# use it for options that affect everything
+#
+[client-server]
+
+#
+# include *.cnf from the config directory
+#
+!includedir /etc/my.cnf.d
+
diff --git a/support-files/rpm/mysql-clients.cnf b/support-files/rpm/mysql-clients.cnf
new file mode 100644
index 00000000..3df9b7b9
--- /dev/null
+++ b/support-files/rpm/mysql-clients.cnf
@@ -0,0 +1,23 @@
+#
+# These groups are read by MariaDB command-line tools
+# Use it for options that affect only one utility
+#
+
+[mysql]
+
+[mysql_upgrade]
+
+[mysqladmin]
+
+[mysqlbinlog]
+
+[mysqlcheck]
+
+[mysqldump]
+
+[mysqlimport]
+
+[mysqlshow]
+
+[mysqlslap]
+
diff --git a/support-files/rpm/plugin-postin.sh b/support-files/rpm/plugin-postin.sh
new file mode 100644
index 00000000..1844de1b
--- /dev/null
+++ b/support-files/rpm/plugin-postin.sh
@@ -0,0 +1,3 @@
+# request the server restart
+mkdir -p %{restart_flag_dir}
+echo > %{restart_flag}
diff --git a/support-files/rpm/server-postin.sh b/support-files/rpm/server-postin.sh
new file mode 100644
index 00000000..61c417e3
--- /dev/null
+++ b/support-files/rpm/server-postin.sh
@@ -0,0 +1,87 @@
+if [ -f /usr/lib/systemd/system/mariadb.service -a -x /usr/bin/systemctl ]; then
+ systemd_conf=/etc/systemd/system/mariadb.service.d/migrated-from-my.cnf-settings.conf
+ if [ -x %{_bindir}/mariadb-service-convert -a ! -f "${systemd_conf}" ]; then
+ # Either fresh install or upgrade non-systemd -> systemd
+ mkdir -p /etc/systemd/system/mariadb.service.d
+ %{_bindir}/mariadb-service-convert > "${systemd_conf}"
+ # Make sure old possibly non-systemd instance is down
+ if [ $1 = 2 ]; then
+ SYSTEMCTL_SKIP_REDIRECT=1 %{_sysconfdir}/init.d/mysql stop >/dev/null 2>&1 || :
+ systemctl start mariadb >/dev/null 2>&1 || :
+ fi
+ systemctl enable mariadb.service >/dev/null 2>&1 || :
+ fi
+fi
+
+# Make MySQL start/shutdown automatically when the machine does it.
+if [ $1 = 1 ] ; then
+ if [ -x /usr/bin/systemctl ] ; then
+ /usr/bin/systemctl daemon-reload >/dev/null 2>&1 || :
+ /usr/bin/systemctl preset mariadb.service >/dev/null 2>&1 || :
+ elif [ -x /sbin/chkconfig ] ; then
+ /sbin/chkconfig --add mysql
+ fi
+
+ basedir=`%{_bindir}/my_print_defaults --mysqld|sed -ne 's/^--basedir=//p'|tail -1`
+ if [ -z "$basedir" ] ; then
+ basedir=%{mysqlbasedir}
+ fi
+
+ datadir=`%{_bindir}/my_print_defaults --mysqld|sed -ne 's/^--datadir=//p'|tail -1`
+ if [ -z "$datadir" ] ; then
+ datadir=%{mysqldatadir}
+ else
+ # datadir may be relative to a basedir!
+ if ! expr $datadir : / > /dev/null; then
+ datadir=$basedir/$datadir
+ fi
+ fi
+
+ # Create a MySQL user and group. Do not report any problems if it already
+ # exists.
+ groupadd -r %{mysqld_group} 2> /dev/null || true
+ useradd -M -r --home $datadir --shell /sbin/nologin --comment "MySQL server" --gid %{mysqld_group} %{mysqld_user} 2> /dev/null || true
+ # The user may already exist, make sure it has the proper group nevertheless (BUG#12823)
+ usermod --gid %{mysqld_group} %{mysqld_user} 2> /dev/null || true
+
+ # Temporary Workaround for MDEV-11386 - will be corrected in Advance Toolchain 10.0-3 and 8.0-8
+ for ldconfig in /opt/at*/sbin/ldconfig; do
+ test -x $ldconfig && $ldconfig
+ done
+
+ # Change permissions so that the user that will run the MySQL daemon
+ # owns all database files.
+ chown -R -f %{mysqld_user}:%{mysqld_group} $datadir
+
+ if [ ! -e $datadir/mysql ]; then
+ # Create data directory
+ mkdir -p $datadir
+
+ # Initiate databases
+ %{_bindir}/mysql_install_db --rpm --user=%{mysqld_user}
+ fi
+
+ # Change permissions again to fix any new files.
+ chown -R %{mysqld_user}:%{mysqld_group} $datadir
+
+ # Fix permissions for the permission database so that only the user
+ # can read them.
+ chmod -R og-rw $datadir/mysql
+fi
+
+# Set the correct filesystem ownership for the PAM v2 plugin
+chown %{mysqld_user} /usr/lib*/mysql/plugin/auth_pam_tool_dir
+
+# install SELinux files - but don't override existing ones
+SETARGETDIR=/etc/selinux/targeted/src/policy
+SEDOMPROG=$SETARGETDIR/domains/program
+SECONPROG=$SETARGETDIR/file_contexts/program
+
+if [ -x /usr/sbin/semodule ] ; then
+ /usr/sbin/semodule -i /usr/share/mysql/policy/selinux/mariadb.pp
+fi
+
+if [ -x /sbin/restorecon ] ; then
+ /sbin/restorecon -R /var/lib/mysql
+fi
+
diff --git a/support-files/rpm/server-posttrans.sh b/support-files/rpm/server-posttrans.sh
new file mode 100644
index 00000000..d91ff65e
--- /dev/null
+++ b/support-files/rpm/server-posttrans.sh
@@ -0,0 +1,15 @@
+if [ -r %{restart_flag} ] ; then
+ rm %{restart_flag}
+ # only restart the server if it was already running
+ if [ -x /usr/bin/systemctl ] ; then
+ /usr/bin/systemctl daemon-reload > /dev/null 2>&1
+ if /usr/bin/systemctl is-active mysql; then
+ /usr/bin/systemctl restart mysql > /dev/null 2>&1
+ else
+ /usr/bin/systemctl try-restart mariadb.service > /dev/null 2>&1
+ fi
+ # not a systemd-enabled environment, use SysV startup script
+ elif %{_sysconfdir}/init.d/mysql status > /dev/null 2>&1; then
+ %{_sysconfdir}/init.d/mysql restart > /dev/null 2>&1
+ fi
+fi
diff --git a/support-files/rpm/server-postun.sh b/support-files/rpm/server-postun.sh
new file mode 100644
index 00000000..27e1125b
--- /dev/null
+++ b/support-files/rpm/server-postun.sh
@@ -0,0 +1,12 @@
+if [ $1 -ge 1 ]; then
+ # request the server restart
+ mkdir -p %{restart_flag_dir}
+ echo > %{restart_flag}
+fi
+
+if [ $1 = 0 ] ; then
+ if [ -x /usr/bin/systemctl ] ; then
+ /usr/bin/systemctl daemon-reload > /dev/null 2>&1
+ fi
+fi
+
diff --git a/support-files/rpm/server-prein.sh b/support-files/rpm/server-prein.sh
new file mode 100644
index 00000000..9f8d1229
--- /dev/null
+++ b/support-files/rpm/server-prein.sh
@@ -0,0 +1,67 @@
+# Check if we can safely upgrade. An upgrade is only safe if it's from one
+# of our RPMs in the same version family.
+
+installed=`rpm -q --whatprovides mysql-server 2> /dev/null`
+if [ $? -eq 0 -a -n "$installed" ]; then
+ installed=`echo "$installed"|sed -n 1p`
+ vendor=`rpm -q --queryformat='%{VENDOR}' "$installed" 2>&1 | sed 's/Monty Program AB/MariaDB Foundation/'`
+ version=`rpm -q --queryformat='%{VERSION}' "$installed" 2>&1`
+ myvendor='%{mysql_vendor}'
+ myversion='%{mysqlversion}'
+
+ old_family=`echo $version | sed -n -e 's,^\([1-9][0-9]*\.[0-9][0-9]*\)\..*$,\1,p'`
+ new_family=`echo $myversion | sed -n -e 's,^\([1-9][0-9]*\.[0-9][0-9]*\)\..*$,\1,p'`
+
+ [ -z "$vendor" ] && vendor='<unknown>'
+ [ -z "$old_family" ] && old_family="<unrecognized version $version>"
+ [ -z "$new_family" ] && new_family="<bad package specification: version $myversion>"
+
+ error_text=
+ if [ "$vendor" != "$myvendor" ]; then
+ error_text="$error_text
+The current MariaDB server package is provided by a different
+vendor ($vendor) than $myvendor. Some files may be installed
+to different locations, including log files and the service
+startup script in %{_sysconfdir}/init.d/.
+"
+ fi
+
+ if [ "$old_family" != "$new_family" ]; then
+ error_text="$error_text
+Upgrading directly from MySQL $old_family to MariaDB $new_family may not
+be safe in all cases. A manual dump and restore using mysqldump is
+recommended. It is important to review the MariaDB manual's Upgrading
+section for version-specific incompatibilities.
+"
+ fi
+
+ if [ -n "$error_text" ]; then
+ cat <<HERE >&2
+
+******************************************************************
+A MySQL or MariaDB server package ($installed) is installed.
+$error_text
+A manual upgrade is required.
+
+- Ensure that you have a complete, working backup of your data and my.cnf
+ files
+- Shut down the MySQL server cleanly
+- Remove the existing MySQL packages. Usually this command will
+ list the packages you should remove:
+ rpm -qa | grep -i '^mysql-'
+
+ You may choose to use 'rpm --nodeps -ev <package-name>' to remove
+ the package which contains the mysqlclient shared library. The
+ library will be reinstalled by the MariaDB-shared package.
+- Install the new MariaDB packages supplied by $myvendor
+- Ensure that the MariaDB server is started
+- Run the 'mysql_upgrade' program
+
+This is a brief description of the upgrade process. Important details
+can be found in the MariaDB manual, in the Upgrading section.
+******************************************************************
+HERE
+ exit 1
+ fi
+fi
+
diff --git a/support-files/rpm/server-preun.sh b/support-files/rpm/server-preun.sh
new file mode 100644
index 00000000..34a35cbc
--- /dev/null
+++ b/support-files/rpm/server-preun.sh
@@ -0,0 +1,18 @@
+if [ $1 = 0 ] ; then
+ # Stop MySQL before uninstalling it
+ # Don't start it automatically anymore
+ if [ -x /usr/bin/systemctl ] ; then
+ /usr/bin/systemctl stop mariadb.service > /dev/null 2>&1
+ /usr/bin/systemctl disable mariadb.service > /dev/null 2>&1
+ fi
+ if [ -x %{_sysconfdir}/init.d/mysql ] ; then
+ %{_sysconfdir}/init.d/mysql stop > /dev/null
+ if [ -x /sbin/chkconfig ] ; then
+ /sbin/chkconfig --del mysql > /dev/null 2>&1 || :
+ fi
+ fi
+fi
+
+# We do not remove the mysql user since it may still own a lot of
+# database files.
+
diff --git a/support-files/rpm/server.cnf b/support-files/rpm/server.cnf
new file mode 100644
index 00000000..c401ea98
--- /dev/null
+++ b/support-files/rpm/server.cnf
@@ -0,0 +1,46 @@
+#
+# These groups are read by MariaDB server.
+# Use it for options that only the server (but not clients) should see
+#
+# See the examples of server my.cnf files in /usr/share/mysql/
+#
+
+# this is read by the standalone daemon and embedded servers
+[server]
+
+# this is only for the mysqld standalone daemon
+[mysqld]
+
+#
+# * Galera-related settings
+#
+[galera]
+# Mandatory settings
+#wsrep_on=ON
+#wsrep_provider=
+#wsrep_cluster_address=
+#binlog_format=row
+#default_storage_engine=InnoDB
+#innodb_autoinc_lock_mode=2
+#
+# Allow server to accept connections on all interfaces.
+#
+#bind-address=0.0.0.0
+#
+# Optional setting
+#wsrep_slave_threads=1
+#innodb_flush_log_at_trx_commit=0
+
+# this is only for embedded server
+[embedded]
+
+# This group is only read by MariaDB servers, not by MySQL.
+# If you use the same .cnf file for MySQL and MariaDB,
+# you can put MariaDB-only options here
+[mariadb]
+
+# This group is only read by MariaDB-10.5 servers.
+# If you use the same .cnf file for MariaDB of different versions,
+# use this group for options that older servers don't understand
+[mariadb-10.5]
+
diff --git a/support-files/rpm/shared-post.sh b/support-files/rpm/shared-post.sh
new file mode 100644
index 00000000..8b0c8224
--- /dev/null
+++ b/support-files/rpm/shared-post.sh
@@ -0,0 +1 @@
+/sbin/ldconfig