Skip to content

Commit c57708e

Browse files
authored
Add support for PHPmyAdmin SSO support for Mysql 8 (hestiacp#3539)
* Add support for mysql 8 * Fix test * remove the test * Fix hestiacp#3520 phpMyAdmin configuration storage is not completely configured
1 parent 706f438 commit c57708e

File tree

3 files changed

+101
-34
lines changed

3 files changed

+101
-34
lines changed

func/db.sh

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -360,9 +360,22 @@ add_pgsql_database() {
360360

361361
add_mysql_database_temp_user() {
362362
mysql_connect $host
363-
query="GRANT ALL ON \`$database\`.* TO \`$dbuser\`@localhost
364-
IDENTIFIED BY '$dbpass'"
365-
mysql_query "$query" > /dev/null
363+
364+
mysql_ver_sub=$(echo $mysql_ver | cut -d '.' -f1)
365+
mysql_ver_sub_sub=$(echo $mysql_ver | cut -d '.' -f2)
366+
367+
if [ "$mysql_fork" = "mysql" ] && [ "$mysql_ver_sub" -ge 8 ]; then
368+
query="CREATE USER \`$dbuser\`@localhost
369+
IDENTIFIED BY '$dbpass'"
370+
mysql_query "$query" > /dev/null
371+
372+
query="GRANT ALL ON \`$database\`.* TO \`$dbuser\`@localhost"
373+
mysql_query "$query" > /dev/null
374+
else
375+
query="GRANT ALL ON \`$database\`.* TO \`$dbuser\`@localhost
376+
IDENTIFIED BY '$dbpass'"
377+
mysql_query "$query" > /dev/null
378+
fi
366379
}
367380

368381
delete_mysql_database_temp_user() {

install/deb/phpmyadmin/pma.sh

Lines changed: 42 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -48,31 +48,56 @@ PMADB=phpmyadmin
4848
PMAUSER=pma
4949

5050
#DROP USER and TABLE
51-
# mysql -uroot <<MYSQL_PMA1
52-
# DROP USER '$PMAUSER'@'localhost';
53-
# DROP DATABASE $PMADB;
54-
# FLUSH PRIVILEGES;
55-
# MYSQL_PMA1
51+
#mysql -uroot <<MYSQL_PMA1
52+
#DROP USER '$PMAUSER'@'localhost';
53+
#DROP DATABASE $PMADB;
54+
#FLUSH PRIVILEGES;
55+
#MYSQL_PMA1
5656

5757
#CREATE PMA USER
5858
if [ -f '/usr/bin/mariadb' ]; then
5959
mysql_server="mariadb"
6060
else
6161
mysql_server="mysql"
6262
fi
63+
mysql_out=$(mktemp)
64+
$mysql -e 'SELECT VERSION()' > $mysql_out
65+
mysql_ver=$(cat $mysql_out | tail -n1 | cut -f 1 -d -)
66+
mysql_ver_sub=$(echo $mysql_ver | cut -d '.' -f1)
67+
mysql_ver_sub_sub=$(echo $mysql_ver | cut -d '.' -f2)
6368

64-
$mysql_server -uroot << MYSQL_PMA2
65-
CREATE USER '$PMAUSER'@'localhost' IDENTIFIED BY '$PASS';
66-
CREATE DATABASE $PMADB;
67-
MYSQL_PMA2
68-
69-
#GRANT PMA USE SOME RIGHTS
70-
$mysql_server -uroot << MYSQL_PMA3
71-
USE $PMADB;
72-
GRANT USAGE ON $PMADB.* TO '$PMAUSER'@'localhost' IDENTIFIED BY '$PASS';
73-
GRANT ALL PRIVILEGES ON $PMADB.* TO '$PMAUSER'@'localhost';
74-
FLUSH PRIVILEGES;
75-
MYSQL_PMA3
69+
if [ "$mysql" = "mysql" ] && [ "$mysql_ver_sub" -ge 8 ]; then
70+
query="CREATE USER '$PMAUSER'@'localhost' IDENTIFIED BY '$PASS';"
71+
$mysql_server -uroot -e "$query" > /dev/null
72+
73+
query="CREATE DATABASE $PMADB;"
74+
$mysql_server -uroot -e "$query" > /dev/null
75+
76+
query="GRANT USAGE ON $PMADB.* TO '$PMAUSER'@'localhost';"
77+
$mysql_server -uroot -e "$query" > /dev/null
78+
79+
query="GRANT ALL PRIVILEGES ON $PMADB.* TO '$PMAUSER'@'localhost';"
80+
$mysql_server -uroot -e "$query" > /dev/null
81+
82+
query="FLUSH PRIVILEGES;"
83+
$mysql_server -uroot -e "$query" > /dev/null
84+
85+
else
86+
query="CREATE USER '$PMAUSER'@'localhost' IDENTIFIED BY '$PASS';"
87+
$mysql_server -uroot -e "$query" > /dev/null
88+
89+
query="CREATE DATABASE $PMADB;"
90+
$mysql_server -uroot -e "$query" > /dev/null
91+
92+
query="GRANT USAGE ON $PMADB.* TO '$PMAUSER'@'localhost' IDENTIFIED BY '$PASS';"
93+
$mysql_server -uroot -e "$query" > /dev/null
94+
95+
query="GRANT ALL PRIVILEGES ON $PMADB.* TO '$PMAUSER'@'localhost';"
96+
$mysql_server -uroot -e "$query" > /dev/null
97+
98+
query="FLUSH PRIVILEGES;"
99+
$mysql_server -uroot -e "$query" > /dev/null
100+
fi
76101

77102
#MYSQL DB and TABLES ADDITION
78103
$mysql_server -uroot < "$HESTIA_INSTALL_DIR/phpmyadmin/create_tables.sql"

install/upgrade/manual/migrate_phpmyadmin.sh

Lines changed: 43 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -144,21 +144,50 @@ DROP DATABASE $PMADB;
144144
FLUSH PRIVILEGES;
145145
MYSQL_PMA1
146146

147-
echo '[ * ] Creating new user...'
148147
#CREATE PMA USER
149-
mysql -uroot << MYSQL_PMA2
150-
CREATE USER '$PMAUSER'@'localhost' IDENTIFIED BY '$PASS';
151-
CREATE DATABASE $PMADB;
152-
MYSQL_PMA2
153-
154-
echo '[ * ] Creating new database...'
155-
#GRANT PMA USE SOME RIGHTS
156-
mysql -uroot << MYSQL_PMA3
157-
USE $PMADB;
158-
GRANT USAGE ON $PMADB.* TO '$PMAUSER'@'localhost' IDENTIFIED BY '$PASS';
159-
GRANT ALL PRIVILEGES ON $PMADB.* TO '$PMAUSER'@'localhost';
160-
FLUSH PRIVILEGES;
161-
MYSQL_PMA3
148+
if [ -f '/usr/bin/mariadb' ]; then
149+
mysql="mariadb"
150+
else
151+
mysql="mysql"
152+
fi
153+
mysql_out=$(mktemp)
154+
$mysql -e 'SELECT VERSION()' > $mysql_out
155+
mysql_ver=$(cat $mysql_out | tail -n1 | cut -f 1 -d -)
156+
mysql_ver_sub=$(echo $mysql_ver | cut -d '.' -f1)
157+
mysql_ver_sub_sub=$(echo $mysql_ver | cut -d '.' -f2)
158+
159+
if [ "$mysql" = "mysql" ] && [ "$mysql_ver_sub" -ge 8 ]; then
160+
query="CREATE USER '$PMAUSER'@'localhost' IDENTIFIED BY '$PASS';"
161+
$mysql -uroot -e "$query" > /dev/null
162+
163+
query="CREATE DATABASE $PMADB;"
164+
$mysql -uroot -e "$query" > /dev/null
165+
166+
query="GRANT USAGE ON $PMADB.* TO '$PMAUSER'@'localhost';"
167+
$mysql -uroot -e "$query" > /dev/null
168+
169+
query="GRANT ALL PRIVILEGES ON $PMADB.* TO '$PMAUSER'@'localhost';"
170+
$mysql -uroot -e "$query" > /dev/null
171+
172+
query="FLUSH PRIVILEGES;"
173+
$mysql -uroot -e "$query" > /dev/null
174+
175+
else
176+
query="CREATE USER '$PMAUSER'@'localhost' IDENTIFIED BY '$PASS';"
177+
$mysql -uroot -e "$query" > /dev/null
178+
179+
query="CREATE DATABASE $PMADB;"
180+
$mysql -uroot -e "$query" > /dev/null
181+
182+
query="GRANT USAGE ON $PMADB.* TO '$PMAUSER'@'localhost' IDENTIFIED BY '$PASS';"
183+
$mysql -uroot -e "$query" > /dev/null
184+
185+
query="GRANT ALL PRIVILEGES ON $PMADB.* TO '$PMAUSER'@'localhost';"
186+
$mysql -uroot -e "$query" > /dev/null
187+
188+
query="FLUSH PRIVILEGES;"
189+
$mysql -uroot -e "$query" > /dev/null
190+
fi
162191

163192
#MYSQL DB and TABLES ADDITION
164193
mysql -uroot < $HESTIA_INSTALL_DIR/phpmyadmin/create_tables.sql

0 commit comments

Comments
 (0)