403Webshell
Server IP : 193.86.120.172  /  Your IP : 216.73.216.67
Web Server : Apache/2.4.63 (Unix)
System : Linux JServices 3.10.108 #86003 SMP Wed Oct 22 13:20:46 CST 2025 x86_64
User : kubec ( 1026)
PHP Version : 8.2.28
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/packages/MariaDB10/scripts/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/packages/MariaDB10/scripts/common
#!/bin/sh
# Copyright (C) 2000-2017 Synology Inc. All rights reserved.

. `dirname $0`/lib

PACKAGE_NAME="MariaDB10"
ETC_FILES="my.cnf"
LIB_FILES="mysql libmysqlclient.so libmysqlclient.so.18 libmysqlclient_r.so libmysqlclient_r.so.18 libmysqlclient_r.so.18.0.0 libmysqld.so libmysqld.so.18"
BIN_LINK_TO_USR_LOCAL_BIN="mysql mysqldump"
USR_BIN_FILES="aria_chk aria_dump_log aria_ftdump aria_pack aria_read_log aria_s3_copy galera_new_cluster galera_recovery innochecksum mariabackup mariadb mariadb-access mariadb-admin mariadb-backup mariadb-binlog mariadb-check mariadb-client-test mariadb-client-test-embedded mariadb-config mariadb_config mariadb-conv mariadb-convert-table-format mariadbd mariadbd-multi mariadbd-safe mariadbd-safe-helper mariadb-dump mariadb-dumpslow mariadb-embedded mariadb-find-rows mariadb-fix-extensions mariadb-hotcopy mariadb-import mariadb-install-db mariadb-ldb mariadb-plugin mariadb-secure-installation mariadb-service-convert mariadb-setpermission mariadb-show mariadb-slap mariadb-test mariadb-test-embedded mariadb-tzinfo-to-sql mariadb-upgrade mariadb-waitpid mbstream msql2mysql myisamchk myisam_ftdump myisamlog myisampack my_print_defaults myrocks_hotbackup mysql mysqlaccess mysqladmin mysqlbinlog mysqlcheck mysql_client_test mysql_client_test_embedded mysql_convert_table_format mysqld mysqld_multi mysqld_safe mysqld_safe_helper mysqldump mysqldumpslow mysql_embedded mysql_find_rows mysql_fix_extensions mysqlhotcopy mysqlimport mariadb-install-db mysql_ldb mysql_plugin mysql_setpermission mysqlshow mysqlslap mysqltest mysqltest_embedded mysql_tzinfo_to_sql mysql_upgrade mysql_waitpid perror replace resolveip resolve_stack_dump sst_dump test-connect-t wsrep_sst_backup wsrep_sst_common wsrep_sst_mariabackup wsrep_sst_mysqldump wsrep_sst_rsync wsrep_sst_rsync_wan"
CONF_FILE="/var/packages/MariaDB10/etc/.mariadb.conf"
MY_PORT_CNF_FILE="/var/packages/MariaDB10/etc/my_port.cnf"
ENV_DIR_NAME="mariadb10"
PREVIOUS_VERSION_FILE="/var/packages/MariaDB10/etc/.pre_ver"
SYNOLOGY_CNF_FILE="/var/packages/MariaDB10/etc/synology.cnf"
PORT_CONFIG_FILE="/var/packages/MariaDB10/target/port_conf/MariaDB10.sc"
DATADIR="/var/packages/MariaDB10/target/mysql"
PKG_VAR="/var/packages/MariaDB10/var"
IS_USBSTATION="$(/bin/get_key_value /etc.defaults/synoinfo.conf usbstation)"

MARIADB_BASE_DIR="/usr/local/mariadb10"
MYSQL_SERVER="$MARIADB_BASE_DIR"/share/mysql/mysql.server
BIN_MYSQL_UPGRADE="$MARIADB_BASE_DIR"/bin/mysql_upgrade
BIN_MYSQL_INSTALL_DB="$MARIADB_BASE_DIR"/bin/mariadb-install-db
BIN_MYSQL_MYSQLDUMP="$MARIADB_BASE_DIR"/bin/mysqldump
BIN_MYSQL="$MARIADB_BASE_DIR"/bin/mysql
BIN_SYNOLOGY_SETTING="/var/packages/MariaDB10/target/tool/synology_setting"
RESET_DEFAULT_PASSWORD="##sYnoloGY2019!!"

if [ "$SYNOPKG_TEMP_LOGFILE" ]; then
    log() {
        local text="$1"
        local idx=0
        shift 1
        for val in "$@"; do
            text="${text//\{$idx\}/$val}"
            let idx=1+$idx
        done
        echo "$text" >> $SYNOPKG_TEMP_LOGFILE
    }
fi

CheckEnoughSpace()
{
    local pkgVolume=$1
    local mysqlPath=$2
    local pkgVolumeSize=$(/bin/df "/$pkgVolume" | tail -n 1 | awk '{ print $4 }')
    local mysqlSize=$(/bin/du -s "$mysqlPath" | awk '{ print $1 }')

    if [ $pkgVolumeSize -le $mysqlSize ]; then
        log "${pkgVolume} ${space_not_enough}"
        exit 1
    fi
}

MoveEnvToPackageVar()
{
    local oldMysqlPath="$1"
    local pkgVolume=$(readlink "$PKG_VAR" | cut -d/ -f2)
    local envVolume=$(echo "$oldMysqlPath" | cut -d/ -f2)

    if [ ! "$pkgVolume" = "$envVolume" ]; then
        CheckEnoughSpace "$pkgVolume" "$oldMysqlPath"
    fi

    if [ -d "$PKG_VAR/$ENV_DIR_NAME" ]; then
        rm -rf "$PKG_VAR/$ENV_DIR_NAME"
    fi

    /bin/mv -f $oldMysqlPath "$PKG_VAR"
}

ChkExecEnv()
{
    local mysqlPath=
    if [ ! -L ${DATADIR} ]; then
        mysqlPath="$PKG_VAR/$ENV_DIR_NAME"
        /bin/ln -fs "${mysqlPath}" "${DATADIR}"
    else
        mysqlPath=$(readlink ${DATADIR})
    fi

    if [ ! -d "${mysqlPath}" ]; then
        mkdir -p "${mysqlPath}"
    fi

    [ ! -d /run/mysqld ] && /bin/mkdir -p /run/mysqld
    /bin/chown -R mysql:mysql /run/mysqld "${DATADIR}"/
}

StartSingleUser()
{
    $MYSQL_SERVER start --skip-grant-tables --skip-networking --max-allowed-packet=512M
    for i in $(seq 60); do
        if ! $MYSQL_SERVER status; then
            sleep 1
            continue
        fi
        return 0
    done
    return 1
}

quote_sql() {
    sed -e 's|\\|\\\\|g' -e 's|\"|\\\"|g' -e "s|'|\\\'|g"
}

InitTemp()
{
    local tmpdir="/var/packages/MariaDB10/tmp/tmpdir"
    rm -rf "$tmpdir"
    mkdir "$tmpdir"
    chmod 777 "$tmpdir"
    chmod o+t "$tmpdir"
}

RebuildDatabase()
{
    ChkExecEnv
    if [ ! -d ${DATADIR}/mysql ]; then
        new_root_pass="$RESET_DEFAULT_PASSWORD"
        [ ! -z "$pkgwizard_new_root_password" ] && new_root_pass="$(echo "$pkgwizard_new_root_password" | quote_sql)"
        echo "Initialize MySQL database"
        "$BIN_MYSQL_INSTALL_DB" --user=mysql --basedir="$MARIADB_BASE_DIR" --datadir="${DATADIR}"
        echo "${PKGVERSION}" | sed 's|\(.*\)-[0-9]*|\1|' > "${DATADIR}/VERSION"
        "$MYSQL_SERVER" start
        "$BIN_MYSQL" -e "DELETE FROM mysql.user WHERE User=''"
        "$BIN_MYSQL" -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1')"
        "$BIN_MYSQL" -e "DROP DATABASE IF EXISTS test"
        "$BIN_MYSQL" -e "DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%'"
        "$BIN_MYSQL" -e "ALTER USER 'root'@'127.0.0.1' IDENTIFIED VIA mysql_native_password USING PASSWORD('$new_root_pass')";
        "$BIN_MYSQL" -e "ALTER USER 'root'@'::1'       IDENTIFIED VIA mysql_native_password USING PASSWORD('$new_root_pass')";
        "$BIN_MYSQL" -e "ALTER USER 'root'@'localhost' IDENTIFIED VIA mysql_native_password USING PASSWORD('$new_root_pass')";
        "$MYSQL_SERVER" stop
        local pkg_version=`/bin/get_key_value /var/packages/$PACKAGE_NAME/INFO version`
        echo ${pkg_version} | sed 's|\(.*\)-[0-9]*|\1|' > ${DATADIR}/VERSION
    fi
}

CHECK_AND_LINK_FILE()
{
    LINK=$1
    LINK_TARGET="`realpath ${SYNOPKG_PKGDEST}${LINK}`"
    LINK_BASE=`dirname $1`

    if [ ! -d "$LINK_BASE" ]; then
        mkdir -p $LINK_BASE
    fi
    if [ -e "$LINK" ]; then
        rm "$LINK"
    fi
    ln -sf $LINK_TARGET $LINK
}

DO_LINK()
{
    for file in $ETC_FILES
    do
        CHECK_AND_LINK_FILE "$MARIADB_BASE_DIR/etc/mysql/$file"
    done

    for file in $USR_BIN_FILES
    do
        CHECK_AND_LINK_FILE "$MARIADB_BASE_DIR/bin/$file"
    done

    for file in $BIN_LINK_TO_USR_LOCAL_BIN
    do
        ln -sf "$(realpath "$SYNOPKG_PKGDEST/$MARIADB_BASE_DIR/bin/$file")" "/usr/local/bin/$file"
    done

    for file in $LIB_FILES
    do
        CHECK_AND_LINK_FILE "$MARIADB_BASE_DIR/lib/$file"
    done

    CHECK_AND_LINK_FILE "$MARIADB_BASE_DIR/share/mysql"
}

CHECK_AND_REMOVE()
{
    [ -L $1 ] && rm $1
}

DO_REMOVE()
{
    for file in $ETC_FILES
    do
        CHECK_AND_REMOVE "$MARIADB_BASE_DIR/etc/mysql/$file"
    done

    for file in $BIN_LINK_TO_USR_LOCAL_BIN
    do
        rm -f "/usr/local/bin/$file"
    done

    for file in $LIB_FILES
    do
        CHECK_AND_REMOVE "$MARIADB_BASE_DIR/lib/$file"
    done

    CHECK_AND_REMOVE "$MARIADB_BASE_DIR/share/mysql"
}

SetMySQLPort()
{
    port="$1"
    "$BIN_SYNOLOGY_SETTING" --init_port_setting
    "$BIN_SYNOLOGY_SETTING" -p "$port"
    /usr/syno/sbin/synopkghelper update "$PACKAGE_NAME" port-config
}

Youez - 2016 - github.com/yon3zu
LinuXploit