| 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 : |
#!/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
}