/[smeserver]/rpms/smeserver-mysql/sme10/smeserver-mysql-2.7.0-bz12145-backupuserprivileges.patch
ViewVC logotype

Annotation of /rpms/smeserver-mysql/sme10/smeserver-mysql-2.7.0-bz12145-backupuserprivileges.patch

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.3 - (hide annotations) (download)
Thu Sep 5 14:09:40 2024 UTC (2 months, 3 weeks ago) by jpp
Branch: MAIN
CVS Tags: smeserver-mysql-2_7_0-21_el7_sme, HEAD
Changes since 1.2: +6 -6 lines
* Thu Sep 05 2024 Jean-Philippe Pialasse <jpp@koozali.org> 2.7.0-21.sme
- fix typo for user privileges backup [SME: 12145]

1 jpp 1.1 diff -Nur --no-dereference smeserver-mysql-2.7.0.old/root/etc/e-smith/events/actions/mysql-dump-tables smeserver-mysql-2.7.0/root/etc/e-smith/events/actions/mysql-dump-tables
2     --- smeserver-mysql-2.7.0.old/root/etc/e-smith/events/actions/mysql-dump-tables 2022-03-11 10:32:13.000000000 -0500
3     +++ smeserver-mysql-2.7.0/root/etc/e-smith/events/actions/mysql-dump-tables 2024-09-01 00:17:19.404000000 -0400
4     @@ -18,24 +18,53 @@
5     echo $message | /usr/bin/mail -s "error on backup of $db MariaDB database" admin
6     fi
7     message="$message \nThere was an error trying to dump database $db, please check for table errors in this db. Forcing a backup of the corrupted DB."
8     - mysqldump --force --ignore-table=mysql.event --single-transaction --add-drop-table -QB "$db" -r /home/e-smith/db/mysql/"$db"-failed.dump || message="$message \nFailed to force backup of corrupted db $db as $db-failed.dump" >&2
9 jpp 1.3 + mysqldump --force --ignore-table=mysql.event --ignore-table=mysql.user --single-transaction --add-drop-table -QB "$db" -r /home/e-smith/db/mysql/"$db"-failed.dump || message="$message \nFailed to force backup of corrupted db $db as $db-failed.dump" >&2
10 jpp 1.1 if [ "$fixtables" = "enabled" ]; then
11     repair="failure"
12     message="$message \nTrying to auto-repair the db and do a backup after..."
13     mysqlcheck -s --auto-repair -c "$db" && \
14     - mysqldump --ignore-table=mysql.event --single-transaction --add-drop-table -QB "$db" -r /home/e-smith/db/mysql/"$db".dump && repair="success"
15 jpp 1.3 + mysqldump --ignore-table=mysql.event --ignore-table=mysql.user --single-transaction --add-drop-table -QB "$db" -r /home/e-smith/db/mysql/"$db".dump && repair="success"
16 jpp 1.1 message="$message \n => $repair"
17     fi
18     echo $message
19     echo $message | /usr/bin/mail -s "error on backup of $db MariaDB database" admin
20     }
21    
22     +# Do nothing if disabled
23     if [ "$status" = "disabled" ]
24     then
25     echo "mysqld is disabled - no tables dumped" >&2
26     exit 0
27     fi
28     +
29     +# Actual mysql db backup
30     for db in $(mysql -BNre "show databases;"|egrep -vi "^information_schema$|^performance_schema$")
31     do
32     - mysqldump --ignore-table=mysql.event --single-transaction --add-drop-table -QB "$db" -r /home/e-smith/db/mysql/"$db".dump || onfailure $db
33 jpp 1.3 + mysqldump --ignore-table=mysql.event --ignore-table=mysql.user --single-transaction --add-drop-table -QB "$db" -r /home/e-smith/db/mysql/"$db".dump || onfailure $db
34 jpp 1.1 +done
35     +
36     +# Backup the users and privileges
37     +# backup of mysql/mariadb users excluding root for later restore.
38     +# would allow compatible backup from mariadb <103 to mariadb >= 103
39     +# will also need to exclude mysql.user from restore in mariadb >= 103
40     +# inspired by https://stackoverflow.com/a/56588240
41     +# for mariadb 5.5 we replace authentication_string with Password
42 jpp 1.2 +mysql -sNe " \
43 jpp 1.1 + SELECT \
44     + CONCAT( 'CREATE USER \'', User, '\'@\'', Host, '\' IDENTIFIED BY \'', Password, '\'\;' ) AS User \
45     + FROM mysql.user \
46     + WHERE \
47     + User NOT LIKE 'mysql.%' AND CONCAT( User, Host ) <> 'rootlocalhost' \
48     +" >/home/e-smith/db/mysql/mysql.privileges.dump
49 jpp 1.2 +mysql -sNe " \
50 jpp 1.1 + SELECT \
51     + CONCAT( '\'', User, '\'@\'', Host, '\'' ) as User FROM mysql.user \
52     + WHERE \
53     + User NOT LIKE 'mysql.%' \
54     + AND CONCAT( User, Host ) <> 'rootlocalhost' \
55     +" | sort | while read u ;
56     + do echo "-- $u">> /home/e-smith/db/mysql/mysql.privileges.dump
57 jpp 1.2 + mysql -sNe "show grants for $u" | sed 's/$/;/' >> /home/e-smith/db/mysql/mysql.privileges.dump
58 jpp 1.1 done
59     +echo >> /home/e-smith/db/mysql/mysql.privileges.dump
60     +echo "FLUSH PRIVILEGES;" >> /home/e-smith/db/mysql/mysql.privileges.dump
61     diff -Nur --no-dereference smeserver-mysql-2.7.0.old/rootscl/etc/e-smith/events/actions/mariadb_VER_-dump-tables smeserver-mysql-2.7.0/rootscl/etc/e-smith/events/actions/mariadb_VER_-dump-tables
62     --- smeserver-mysql-2.7.0.old/rootscl/etc/e-smith/events/actions/mariadb_VER_-dump-tables 2024-08-31 23:52:18.590000000 -0400
63     +++ smeserver-mysql-2.7.0/rootscl/etc/e-smith/events/actions/mariadb_VER_-dump-tables 2024-09-01 00:16:51.103000000 -0400
64     @@ -35,24 +35,53 @@
65     echo $message | /usr/bin/mail -s "error on backup of $db MariaDB !!!VER!!! database" admin
66     fi
67     message="$message \nThere was an error trying to dump database $db, please check for table errors in this db. Forcing a backup of the corrupted DB."
68     - /opt/rh/rh-mariadb!!!VER!!!/root/usr/bin/mysqldump --socket=!!!SOCKET!!! --force --ignore-table=mysql.event --single-transaction --add-drop-table -QB "$db" -r /home/e-smith/db/mariadb!!!VER!!!/"$db"-failed.dump || message="$message \nFailed to force backup of corrupted db $db as $db-failed.dump" >&2
69 jpp 1.3 + /opt/rh/rh-mariadb!!!VER!!!/root/usr/bin/mysqldump --socket=!!!SOCKET!!! --force --ignore-table=mysql.event --ignore-table=mysql.user --single-transaction --add-drop-table -QB "$db" -r /home/e-smith/db/mariadb!!!VER!!!/"$db"-failed.dump || message="$message \nFailed to force backup of corrupted db $db as $db-failed.dump" >&2
70 jpp 1.1 if [ "$fixtables" = "enabled" ]; then
71     repair="failure"
72     message="$message \nTrying to auto-repair the db and do a backup after..."
73     /opt/rh/rh-mariadb!!!VER!!!/root/usr/bin/mysqlcheck --socket=!!!SOCKET!!! -s --auto-repair -c "$db" && \
74     - /opt/rh/rh-mariadb!!!VER!!!/root/usr/bin/mysqldump --socket=!!!SOCKET!!! --ignore-table=mysql.event --single-transaction --add-drop-table -QB "$db" -r /home/e-smith/db/mariadb!!!VER!!!/"$db".dump && repair="success"
75 jpp 1.3 + /opt/rh/rh-mariadb!!!VER!!!/root/usr/bin/mysqldump --socket=!!!SOCKET!!! --ignore-table=mysql.event --ignore-table=mysql.user --single-transaction --add-drop-table -QB "$db" -r /home/e-smith/db/mariadb!!!VER!!!/"$db".dump && repair="success"
76 jpp 1.1 message="$message \n => $repair"
77     fi
78     echo $message
79     echo $message | /usr/bin/mail -s "error on backup of $db MariaDB database" admin
80     }
81    
82     +# Do nothing if disabled
83     if [ "$status" = "disabled" ]
84     then
85     echo "mysqld is disabled - no tables dumped" >&2
86     exit 0
87     fi
88     +
89     +# Actual mysql db backup
90     for db in $(/opt/rh/rh-mariadb!!!VER!!!/root/usr/bin/mysql --socket=!!!SOCKET!!! -BNre "show databases;"|egrep -vi "^information_schema$|^performance_schema$")
91     do
92     - /opt/rh/rh-mariadb!!!VER!!!/root/usr/bin/mysqldump --socket=!!!SOCKET!!! --ignore-table=mysql.event --single-transaction --add-drop-table -QB "$db" -r /home/e-smith/db/mariadb!!!VER!!!/"$db".dump || onfailure $db
93 jpp 1.3 + /opt/rh/rh-mariadb!!!VER!!!/root/usr/bin/mysqldump --socket=!!!SOCKET!!! --ignore-table=mysql.event --ignore-table=mysql.user --single-transaction --add-drop-table -QB "$db" -r /home/e-smith/db/mariadb!!!VER!!!/"$db".dump || onfailure $db
94 jpp 1.1 +done
95     +
96     +# Backup the users and privileges
97     +# backup of mysql/mariadb users excluding root for later restore.
98     +# would allow compatible backup from mariadb <103 to mariadb >= 103
99     +# will also need to exclude mysql.user from restore in mariadb >= 103
100     +# inspired by https://stackoverflow.com/a/56588240
101 jpp 1.2 +/opt/rh/rh-mariadb!!!VER!!!/root/usr/bin/mysql -sNe " \
102 jpp 1.1 + SELECT \
103     + CONCAT( 'CREATE USER \'', User, '\'@\'', Host, '\' IDENTIFIED BY \'', authentication_string, '\'\;' ) AS User \
104     + FROM mysql.user \
105     + WHERE \
106     + User NOT LIKE 'mysql.%' AND CONCAT( User, Host ) <> 'rootlocalhost' \
107     +" >/home/e-smith/db/mariadb!!!VER!!!/mysql.privileges.dump
108 jpp 1.2 +/opt/rh/rh-mariadb!!!VER!!!/root/usr/bin/mysql -sNe " \
109 jpp 1.1 + SELECT \
110     + CONCAT( '\'', User, '\'@\'', Host, '\'' ) as User FROM mysql.user \
111     + WHERE \
112     + User NOT LIKE 'mysql.%' \
113     + AND CONCAT( User, Host ) <> 'rootlocalhost' \
114     +" | sort | while read u ;
115     + do echo "-- $u">> /home/e-smith/db/mariadb!!!VER!!!/mysql.privileges.dump
116 jpp 1.2 + /opt/rh/rh-mariadb!!!VER!!!/root/usr/bin/mysql -sNe "show grants for $u" | sed 's/$/;/' >> /home/e-smith/db/mariadb!!!VER!!!/mysql.privileges.dump
117 jpp 1.1 done
118     +echo >> /home/e-smith/db/mariadb!!!VER!!!/mysql.privileges.dump
119     +echo "FLUSH PRIVILEGES;" >> /home/e-smith/db/mariadb!!!VER!!!/mysql.privileges.dump
120     +

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed