mirror of
https://github.com/myvesta/vesta
synced 2025-08-19 21:04:07 -07:00
MySQL 5.7 support. Fixes #959. Thanks Maks Skamasle!
This commit is contained in:
parent
381da55889
commit
04d617d756
2 changed files with 26 additions and 43 deletions
19
func/db.sh
19
func/db.sh
|
@ -25,17 +25,20 @@ mysql_connect() {
|
||||||
chmod 660 $mycnf
|
chmod 660 $mycnf
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
err="/tmp/e.mysql"
|
mysql_out=$(mktemp)
|
||||||
mysql --defaults-file=$mycnf -e 'SELECT VERSION()' >/dev/null 2> $err
|
mysql --defaults-file=$mycnf -e 'SELECT VERSION()' > $mysql_out 2>&1
|
||||||
if [ '0' -ne "$?" ]; then
|
if [ '0' -ne "$?" ]; then
|
||||||
if [ "$notify" != 'no' ]; then
|
if [ "$notify" != 'no' ]; then
|
||||||
echo -e "Can't connect to MySQL $HOST\n$(cat $err)" |\
|
echo -e "Can't connect to MySQL $HOST\n$(cat $mysql_out)" |\
|
||||||
$SENDMAIL -s "$subj" $email
|
$SENDMAIL -s "$subj" $email
|
||||||
fi
|
fi
|
||||||
|
rm -f $mysql_out
|
||||||
echo "Error: Connection to $HOST failed"
|
echo "Error: Connection to $HOST failed"
|
||||||
log_event "$E_CONNECT" "$ARGUMENTS"
|
log_event "$E_CONNECT" "$ARGUMENTS"
|
||||||
exit $E_CONNECT
|
exit $E_CONNECT
|
||||||
fi
|
fi
|
||||||
|
mysql_ver=$(cat $mysql_out |tail -n1 |cut -f 1 -d -)
|
||||||
|
rm -f $mysql_out
|
||||||
}
|
}
|
||||||
|
|
||||||
mysql_query() {
|
mysql_query() {
|
||||||
|
@ -199,9 +202,13 @@ add_mysql_database() {
|
||||||
IDENTIFIED BY '$dbpass'"
|
IDENTIFIED BY '$dbpass'"
|
||||||
mysql_query "$query" > /dev/null
|
mysql_query "$query" > /dev/null
|
||||||
|
|
||||||
query="SHOW GRANTS FOR \`$dbuser\`"
|
if [ "$(echo $mysql_ver |cut -d '.' -f2)" -ge 7 ]; then
|
||||||
md5=$(mysql_query "$query" 2>/dev/null)
|
md5=$(mysql_query "SHOW CREATE USER \`$dbuser\`" 2>/dev/null)
|
||||||
md5=$(echo "$md5" |grep 'PASSWORD' |tr ' ' '\n' |tail -n1 |cut -f 2 -d \')
|
md5=$(echo "$md5" |grep password |cut -f8 -d \')
|
||||||
|
else
|
||||||
|
md5=$(mysql_query "SHOW GRANTS FOR \`$dbuser\`" 2>/dev/null)
|
||||||
|
md5=$(echo "$md5" |grep PASSW|tr ' ' '\n' |tail -n1 |cut -f 2 -d \')
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Create PostgreSQL database
|
# Create PostgreSQL database
|
||||||
|
|
|
@ -531,44 +531,20 @@ rebuild_mail_domain_conf() {
|
||||||
|
|
||||||
# Rebuild MySQL
|
# Rebuild MySQL
|
||||||
rebuild_mysql_database() {
|
rebuild_mysql_database() {
|
||||||
|
mysql_connect $HOST
|
||||||
host_str=$(grep "HOST='$HOST'" $VESTA/conf/mysql.conf)
|
mysql_query "CREATE DATABASE \`$DB\` CHARACTER SET $CHARSET" >/dev/null
|
||||||
eval $host_str
|
if [ "$(echo $mysql_ver |cut -d '.' -f2)" -ge 7 ]; then
|
||||||
if [ -z $HOST ] || [ -z $USER ] || [ -z $PASSWORD ]; then
|
mysql_query "CREATE USER IF NOT EXISTS \`$DBUSER\`" >/dev/null
|
||||||
echo "Error: mysql config parsing failed"
|
mysql_query "CREATE USER IF NOT EXISTS \`$DBUSER\`@localhost" >/dev/null
|
||||||
if [ ! -z "$SENDMAIL" ]; then
|
query="UPDATE mysql.user SET authentication_string='$MD5'"
|
||||||
echo "Can't parse MySQL DB config" | $SENDMAIL -s "$subj" $email
|
query="$query WHERE User='$DBUSER'"
|
||||||
fi
|
else
|
||||||
log_event "$E_PARSING" "$ARGUMENTS"
|
query="UPDATE mysql.user SET Password='$MD5' WHERE User='$DBUSER'"
|
||||||
exit $E_PARSING
|
|
||||||
fi
|
fi
|
||||||
|
mysql_query "GRANT ALL ON \`$DB\`.* TO \`$DBUSER\`@\`%\`" >/dev/null
|
||||||
query='SELECT VERSION()'
|
mysql_query "GRANT ALL ON \`$DB\`.* TO \`$DBUSER\`@localhost" >/dev/null
|
||||||
mysql -h $HOST -u $USER -p$PASSWORD -e "$query" > /dev/null 2>&1
|
mysql_query "$query" >/dev/null
|
||||||
if [ '0' -ne "$?" ]; then
|
mysql_query "FLUSH PRIVILEGES" >/dev/null
|
||||||
echo "Error: Database connection to $HOST failed"
|
|
||||||
if [ ! -z "$SENDMAIL" ]; then
|
|
||||||
echo "Database connection to MySQL host $HOST failed" |\
|
|
||||||
$SENDMAIL -s "$subj" $email
|
|
||||||
fi
|
|
||||||
log_event "$E_CONNECT" "$ARGUMENTS"
|
|
||||||
exit $E_CONNECT
|
|
||||||
fi
|
|
||||||
|
|
||||||
query="CREATE DATABASE \`$DB\` CHARACTER SET $CHARSET"
|
|
||||||
mysql -h $HOST -u $USER -p$PASSWORD -e "$query" > /dev/null 2>&1
|
|
||||||
|
|
||||||
query="GRANT ALL ON \`$DB\`.* TO \`$DBUSER\`@\`%\`"
|
|
||||||
mysql -h $HOST -u $USER -p$PASSWORD -e "$query" > /dev/null 2>&1
|
|
||||||
|
|
||||||
query="GRANT ALL ON \`$DB\`.* TO \`$DBUSER\`@localhost"
|
|
||||||
mysql -h $HOST -u $USER -p$PASSWORD -e "$query" > /dev/null 2>&1
|
|
||||||
|
|
||||||
query="UPDATE mysql.user SET Password='$MD5' WHERE User='$DBUSER';"
|
|
||||||
mysql -h $HOST -u $USER -p$PASSWORD -e "$query" > /dev/null 2>&1
|
|
||||||
|
|
||||||
query="FLUSH PRIVILEGES;"
|
|
||||||
mysql -h $HOST -u $USER -p$PASSWORD -e "$query" > /dev/null 2>&1
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Rebuild PostgreSQL
|
# Rebuild PostgreSQL
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue