From 675f549e003edba1b446401585954862568840a9 Mon Sep 17 00:00:00 2001 From: xiao Date: Sat, 21 Dec 2024 18:08:45 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=BC=BA=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=E5=8F=AF=E6=8E=A7=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 5 +- mysql.sh | 1255 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1257 insertions(+), 3 deletions(-) create mode 100644 mysql.sh diff --git a/Dockerfile b/Dockerfile index e5c0ff4..1679a0c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,11 +16,11 @@ RUN sed -i 's/deb.debian.org/mirrors.tencent.com/g' /etc/apt/sources.list \ && rm -rf /var/lib/apt/lists/* # 复制脚本 -COPY ["bt.sh", "init_mysql.sh", "/"] +COPY ["bt.sh", "init_mysql.sh", "mysql.sh", "/"] COPY ["phpmyadmin.sh", "/lamp/"] # 转换启动脚本 -RUN dos2unix /bt.sh && dos2unix /init_mysql.sh +RUN dos2unix /bt.sh && dos2unix /init_mysql.sh && dos2unix /mysql.sh && dos2unix /phpmyadmin.sh # 下载并安装宝塔面板及 lamp 环境 RUN curl -sSO https://download.bt.cn/install/install_panel.sh \ @@ -30,7 +30,6 @@ RUN curl -o /lamp/apache.sh https://download.bt.cn/install/0/apache.sh \ && sh /lamp/apache.sh install 2.4 \ && curl -o /lamp/php.sh https://download.bt.cn/install/3/php.sh \ && sh /lamp/php.sh install 8.3 \ - && curl -o /lamp/mysql.sh https://download.bt.cn/install/3/mysql.sh \ && sh /lamp/mysql.sh install 8.0 \ && sh /lamp/phpmyadmin.sh install 5.2 \ && rm -rf /lamp \ diff --git a/mysql.sh b/mysql.sh new file mode 100644 index 0000000..5b30d87 --- /dev/null +++ b/mysql.sh @@ -0,0 +1,1255 @@ +#!/bin/bash +PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin +export PATH + +public_file=/www/server/panel/install/public.sh +. $public_file +publicFileMd5=$(md5sum ${public_file} 2>/dev/null|awk '{print $1}') +md5check="f94b33b66e8a6bc378245070e3d1b1b9" +if [ "${publicFileMd5}" != "${md5check}" ] && [ -z "${NODE_URL}" ]; then + wget -O Tpublic.sh https://download.bt.cn/install/public.sh -T 20; + publicFileMd5=$(md5sum Tpublic.sh 2>/dev/null|awk '{print $1}') + if [ "${publicFileMd5}" == "${md5check}" ]; then + \cp -rpa Tpublic.sh $public_file + fi + rm -f Tpublic.sh + . $public_file +fi + +download_Url=$NODE_URL + +Root_Path=`cat /var/bt_setupPath.conf` +Setup_Path=$Root_Path/server/mysql +Data_Path=$Root_Path/server/data +Is_64bit=`getconf LONG_BIT` +run_path='/root' +mysql_51='5.1.73' +mysql_55='5.5.62' +mysql_56='5.6.50' +mysql_57='5.7.44' +mysql_80='8.0.36' +mysql_84='8.4.0' +mysql_90='9.0.1' +mariadb_55='5.5.55' +mysql_mariadb_100='10.0.38' +mysql_mariadb_101='10.1.47' +mysql_mariadb_102='10.2.38' +mysql_mariadb_103='10.3.39' +mysql_mariadb_104='10.4.34' +mysql_mariadb_105='10.5.23' +mysql_mariadb_106='10.6.16' +mysql_mariadb_107='10.7.3' +mysql_mariadb_108='10.8.2' +mysql_mariadb_1011='10.11.6' +mysql_mariadb_113='11.3.2' +alisql_version='AliSQL-5.6.32' +Centos7Check=$(cat /etc/redhat-release | grep ' 7.' | grep -iE 'centos') +Centos8Check=$(cat /etc/redhat-release | grep ' 8.' | grep -iE 'centos|Red Hat') +CentosStream8Check=$(cat /etc/redhat-release |grep -i "Centos Stream"|grep 8) +Centos9Check=$(cat /etc/redhat-release | grep ' 9.') +ky10Check=$(rpm -aq|grep ky10.loongarch64) +ky1086Check=$(rpm -aq|grep ky10.x86_64) + +if [ "${ky10Check}" ];then + yum install libtirpc-devel.loongarch64 -y +fi + +if [ "${ky1086Check}" ];then + yum install libtirpc-devel.x86_64 -y +fi + +if [ "${Centos9Check}" ];then + dnf --enablerepo=crb install libtirpc-devel -y +fi + +if [ -z "${cpuCore}" ]; then + cpuCore="1" +fi + +DEBIAN_12_C=$(cat /etc/issue|grep Debian|grep 12) +UBUNTU_22_C=$(cat /etc/issue|grep Ubuntu|grep 22) +EL9_CHECK=$(uname -a|grep el9.x86) +if [ "${DEBIAN_12_C}" ] || [ "${UBUNTU_22_C}" ] || [ "${EL9_CHECK}" ];then + if [ "${2}" == "5.1" ] || [ "${2}" == "5.6" ] || [ "${2}" == "alisql" ];then + echo "============================================================================" + echo "${DEBIAN_12_C}${UBUNTU_22_C}${EL9_CHECK}系统不支持安装mysql-${2}" + echo "请选择安装mysql-5.5/5.7/8.0!" + exit 1 + fi +fi +UBUNTU_24=$(cat /etc/issue|grep Ubuntu|grep 24) +if [ "${UBUNTU_24}" ];then + apt-get install libtirpc-dev -y +fi + +if [ "${EL9_CHECK}" ];then + yum install gnutls gnutls-devel -y +fi + +if [ "${UBUNTU_22_C}" ] || [ "${UBUNTU_24}" ];then + apt-get install libgnutls28-dev -y +fi + +MEM_INFO=$(free -m|grep Mem|awk '{printf("%.f",($2)/1024)}') +if [ "${cpuCore}" != "1" ] && [ "${MEM_INFO}" != "0" ];then + if [ "${cpuCore}" -gt "${MEM_INFO}" ];then + cpuCore="${MEM_INFO}" + fi +else + cpuCore="1" +fi + +#检测hosts文件 +hostfile=`cat /etc/hosts | grep 127.0.0.1 | grep localhost` +if [ "${hostfile}" = '' ]; then + echo "127.0.0.1 localhost localhost.localdomain" >> /etc/hosts +fi + +Error_Send(){ + MIN_O=$(date +%M) + if [ $((MIN_O % 2)) -eq 0 ]; then + exit 1 + fi + if [ ! -f "/tmp/mysql_i.pl" ];then + touch /tmp/mysql_i.pl + TIME=$(date "+%Y-%m-%d %H:%M:%S") + P_VERSION=$(cat /www/server/panel/class/common.py|grep g.version|grep -oE 8.0.[0-9]+) + ls /etc/init.d/ | xargs -n 5 | pr -t -5 > /tmp/mysql_err.pl + tail -n 25 /tmp/mysql_config.pl /tmp/mysql_make.pl >> /tmp/mysql_err.pl + echo Bit:${SYS_BIT} Mem:${MEM_TOTAL}M Core:${CPU_INFO} gcc:${GCC_VER} cmake:${CMAKE_VER} >> /tmp/mysql_err.pl + echo ${SYS_VERSION} ${SYS_INFO} >> /tmp/mysql_err.pl + echo "$sqlVersion install Failed" >> /tmp/mysql_err.pl + ERR_MSG=$(cat /tmp/mysql_err.pl) + rm -f /tmp/mysql_config.pl /tmp/mysql_make.pl /tmp/mysql_install.pl /tmp/mysql_err.pl + curl --request POST \ + --url "http://api.bt.cn/bt_error/index.php" \ + --data "UID=89045" \ + --data "PANEL_VERSION=${P_VERSION}"\ + --data "REQUEST_DATE=${TIME}" \ + --data "OS_VERSION=${SYS_VERSION}" \ + --data "REMOTE_ADDR=192.168.168.1641" \ + --data "REQUEST_URI=mysql" \ + --data "USER_AGENT=${SYS_INFO}" \ + --data "ERROR_INFO=${ERR_MSG}" \ + --data "PACK_TIME=${TIME}" \ + --data "TYPE=3" + fi + exit 1 +} + +Mem_Check(){ + MEM_MB=$(free -m | grep Mem | awk '{print $7}') + MIN_MEM=0 + + Check_Memory() { + if [ "${MEM_MB}" -lt "${MIN_MEM}" ]; then + if [ ! -f "$1" ]; then + echo "============================================================================" + echo "检测到当前空闲内存为${MEM_MB}MB, ${2}至少需要 ${MIN_MEM}MB 空闲内存才可以进行${3}" + echo "请尝试在面板首页中释放内存后再尝试${3}" + echo "如内存仍不足,可执行以下命令后尝试${3},将会跳过内存验证,强制${3}" + echo "命令:touch $1" + echo "注:强制${3}将可能导致服务器异常,请做好备份!" + if [ "$3" == "安装" ];then + echo "部分系统不支持极速安装,仅支持编译安装,如出现使用极速安装提示上面的提醒" + echo "建议更换 CentOS-7/Ubuntu-22/Debian-12 进行极速安装" + fi + exit 1 + else + rm -f "$1" + fi + fi + } + + if [ "${actionType}" == "update" ]; then + if [ "${version}" == "8.0" ] || [ "${version}" == "8.4" ] || [ "${version}" == "9.0" ]; then + MIN_MEM=5192 + Check_Memory "/www/server/panel/install/u_mysql.pl" "升级 MySQL" "升级" + elif [ "${version}" == "5.7" ]; then + MIN_MEM=2000 + Check_Memory "/www/server/panel/install/u_mysql.pl" "升级 MySQL" "升级" + fi + elif [ "${actionType}" == "install" ]; then + if [ "${version}" == "5.7" ]; then + MIN_MEM=1560 + Check_Memory "/www/server/panel/install/i_mysql.pl" "编译安装 MySQL-5.7" "安装" + elif [ "${version}" == "8.0" ] || [ "${version}" == "8.4" ] || [ "${version}" == "9.0" ]; then + MIN_MEM=4096 + Check_Memory "/www/server/panel/install/i_mysql.pl" "编译安装 MySQL-8.0" "安装" + fi + fi +} +System_Lib(){ + if [ "${PM}" == "yum" ] || [ "${PM}" == "dnf" ] ; then + Pack="cmake libarchive" + ${PM} install ${Pack} -y + yum install libuv openldap-devel -y + elif [ "${PM}" == "apt-get" ]; then + Pack="cmake" + ${PM} install ${Pack} -y + fi +} + +gccVersionCheck(){ + gccV=$(gcc -dumpversion|grep ^[789]) + if [ "${gccV}" ]; then + sed -i "s/field_names\[i\]\[num_fields\*2\].*/field_names\[i\]\[num_fields\*2\]= NULL;/" client/mysql.cc + fi +} + +Service_Add(){ + if [ "${PM}" == "yum" ] || [ "${PM}" == "dnf" ]; then + chkconfig --add mysqld + chkconfig --level 2345 mysqld on + elif [ "${PM}" == "apt-get" ]; then + update-rc.d mysqld defaults + fi + if [ "$?" == "127" ];then + wget -O /usr/lib/systemd/system/mysqld.service ${download_Url}/init/systemd/mysqld.service + systemctl enable mysqld.service + fi +} +Service_Del(){ + if [ "${PM}" == "yum" ] || [ "${PM}" == "dnf" ]; then + chkconfig --del mysqld + chkconfig --level 2345 mysqld off + elif [ "${PM}" == "apt-get" ]; then + update-rc.d mysqld remove + fi +} + +printVersion(){ + if [ "${version}" = "alisql" ];then + echo "${alisql_version}" > ${Setup_Path}/version.pl + elif [ "${GREATSQL_VER}" ];then + echo "greatsql_${GREATSQL_VER}" > ${Setup_Path}/version.pl + echo "greatsql_${GREATSQL_VER}" > ${Setup_Path}/version_check.pl + elif [ -z "${mariadbCheck}" ]; then + echo "${sqlVersion}" > ${Setup_Path}/version.pl + else + echo "mariadb_${sqlVersion}" > ${Setup_Path}/version.pl + fi +} +Install_Rpcgen(){ + if [ ! -f "/usr/bin/rpcgen" ];then + wget ${download_Url}/src/rpcsvc-proto-1.4.tar.gz + tar -xvf rpcsvc-proto-1.4.tar.gz + cd rpcsvc-proto-1.4 + ./configure --prefix=/usr/local/rpcgen + make + make install + ln -sf /usr/local/rpcgen/bin/rpcgen /usr/bin/rpcgen + cd .. + rm -rf rpcsvc-proto* + fi +} +Install_Openssl111(){ + opensslCheck=$(/usr/local/openssl111/bin/openssl version|grep 1.1.1) + if [ -z "${opensslCheck}" ]; then + opensslVersion="1.1.1o" + cd ${run_path} + wget ${download_Url}/src/openssl-${opensslVersion}.tar.gz -T 20 + tar -zxf openssl-${opensslVersion}.tar.gz + rm -f openssl-${opensslVersion}.tar.gz + cd openssl-${opensslVersion} + ./config --prefix=/usr/local/openssl111 zlib-dynamic + make -j${cpuCore} + make install + echo "/usr/local/openssl111/lib" >> /etc/ld.so.conf.d/openssl111.conf + ldconfig + cd .. + rm -rf openssl-${opensslVersion} + fi + WITH_SSL="-DWITH_SSL=/usr/local/openssl111" +} +Setup_Mysql_PyDb(){ + pyMysql=$1 + pyMysqlVer=$2 + + wget -O src.zip ${download_Url}/install/src/${pyMysql}-${pyMysqlVer}.zip -T 20 + unzip src.zip + mv ${pyMysql}-${pyMysqlVer} src + cd src + python setup.py install + cd .. + rm -f src.zip + rm -rf src + /etc/init.d/bt reload + +} +Install_Mysql_PyDb(){ + pip uninstall MySQL-python mysqlclient PyMySQL -y + pipUrl=$(cat /root/.pip/pip.conf|awk 'NR==2 {print $3}') + [ "${pipUrl}" ] && checkPip=$(curl --connect-timeout 5 --head -s -o /dev/null -w %{http_code} ${pipUrl}) + pyVersion=$(python -V 2>&1|awk '{printf ("%d",$2)}') + if [ "${pyVersion}" == "2" ];then + if [ -f "${Setup_Path}/mysqlDb3.pl" ]; then + local pyMysql="mysqlclient" + local pyMysqlVer="1.3.12" + else + local pyMysql="MySQL-python" + local pyMysqlVer="1.2.5" + fi + if [ "${checkPip}" = "200" ];then + pip install ${pyMysql} + else + Setup_Mysql_PyDb ${pyMysql} ${pyMysqlVer} + fi + fi + + if [ "${checkPip}" = "200" ];then + pip install PyMySQL + else + Setup_Mysql_PyDb "PyMySQL" "0.9.3" + fi +} + +Drop_Test_Databashes(){ + sleep 1 + /etc/init.d/mysqld stop + pkill -9 mysqld_safe + pkill -9 mysql + sleep 1 + /etc/init.d/mysqld start + sleep 1 + /www/server/mysql/bin/mysql -uroot -p$mysqlpwd -e "drop database test"; + /www/server/mysql/bin/mysql -uroot -p$mysqlpwd -e "delete from mysql.user where user='';" + /www/server/mysql/bin/mysql -uroot -p$mysqlpwd -e "flush privileges;" + +} +#设置软件链 +SetLink() +{ + ln -sf ${Setup_Path}/bin/mysql /usr/bin/mysql + ln -sf ${Setup_Path}/bin/mysqldump /usr/bin/mysqldump + ln -sf ${Setup_Path}/bin/myisamchk /usr/bin/myisamchk + ln -sf ${Setup_Path}/bin/mysqld_safe /usr/bin/mysqld_safe + ln -sf ${Setup_Path}/bin/mysqlcheck /usr/bin/mysqlcheck + ln -sf ${Setup_Path}/bin/mysql_config /usr/bin/mysql_config + + rm -f /usr/lib/libmysqlclient.so.16 + rm -f /usr/lib64/libmysqlclient.so.16 + rm -f /usr/lib/libmysqlclient.so.18 + rm -f /usr/lib64/libmysqlclient.so.18 + rm -f /usr/lib/libmysqlclient.so.20 + rm -f /usr/lib64/libmysqlclient.so.20 + rm -f /usr/lib/libmysqlclient.so.21 + rm -f /usr/lib64/libmysqlclient.so.21 + + if [ -f "${Setup_Path}/lib/libmysqlclient.so.18" ];then + ln -sf ${Setup_Path}/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.16 + ln -sf ${Setup_Path}/lib/libmysqlclient.so.18 /usr/lib64/libmysqlclient.so.16 + ln -sf ${Setup_Path}/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18 + ln -sf ${Setup_Path}/lib/libmysqlclient.so.18 /usr/lib64/libmysqlclient.so.18 + ln -sf ${Setup_Path}/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.20 + ln -sf ${Setup_Path}/lib/libmysqlclient.so.18 /usr/lib64/libmysqlclient.so.20 + elif [ -f "${Setup_Path}/lib/mysql/libmysqlclient.so.18" ];then + ln -sf ${Setup_Path}/lib/mysql/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.16 + ln -sf ${Setup_Path}/lib/mysql/libmysqlclient.so.18 /usr/lib64/libmysqlclient.so.16 + ln -sf ${Setup_Path}/lib/mysql/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18 + ln -sf ${Setup_Path}/lib/mysql/libmysqlclient.so.18 /usr/lib64/libmysqlclient.so.18 + ln -sf ${Setup_Path}/lib/mysql/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.20 + ln -sf ${Setup_Path}/lib/mysql/libmysqlclient.so.18 /usr/lib64/libmysqlclient.so.20 + elif [ -f "${Setup_Path}/lib/libmysqlclient.so.16" ];then + ln -sf ${Setup_Path}/lib/libmysqlclient.so.16 /usr/lib/libmysqlclient.so.16 + ln -sf ${Setup_Path}/lib/libmysqlclient.so.16 /usr/lib64/libmysqlclient.so.16 + ln -sf ${Setup_Path}/lib/libmysqlclient.so.16 /usr/lib/libmysqlclient.so.18 + ln -sf ${Setup_Path}/lib/libmysqlclient.so.16 /usr/lib64/libmysqlclient.so.18 + ln -sf ${Setup_Path}/lib/libmysqlclient.so.16 /usr/lib/libmysqlclient.so.20 + ln -sf ${Setup_Path}/lib/libmysqlclient.so.16 /usr/lib64/libmysqlclient.so.20 + elif [ -f "${Setup_Path}/lib/mysql/libmysqlclient.so.16" ];then + ln -sf ${Setup_Path}/lib/mysql/libmysqlclient.so.16 /usr/lib/libmysqlclient.so.16 + ln -sf ${Setup_Path}/lib/mysql/libmysqlclient.so.16 /usr/lib64/libmysqlclient.so.16 + ln -sf ${Setup_Path}/lib/mysql/libmysqlclient.so.16 /usr/lib/libmysqlclient.so.18 + ln -sf ${Setup_Path}/lib/mysql/libmysqlclient.so.16 /usr/lib64/libmysqlclient.so.18 + ln -sf ${Setup_Path}/lib/mysql/libmysqlclient.so.16 /usr/lib/libmysqlclient.so.20 + ln -sf ${Setup_Path}/lib/mysql/libmysqlclient.so.16 /usr/lib64/libmysqlclient.so.20 + elif [ -f "${Setup_Path}/lib/libmysqlclient_r.so.16" ];then + ln -sf ${Setup_Path}/lib/libmysqlclient_r.so.16 /usr/lib/libmysqlclient_r.so.16 + ln -sf ${Setup_Path}/lib/libmysqlclient_r.so.16 /usr/lib64/libmysqlclient_r.so.16 + elif [ -f "${Setup_Path}/lib/mysql/libmysqlclient_r.so.16" ];then + ln -sf ${Setup_Path}/lib/mysql/libmysqlclient_r.so.16 /usr/lib/libmysqlclient_r.so.16 + ln -sf ${Setup_Path}/lib/mysql/libmysqlclient_r.so.16 /usr/lib64/libmysqlclient_r.so.16 + elif [ -f "${Setup_Path}/lib/libmysqlclient.so.20" ];then + ln -sf ${Setup_Path}/lib/libmysqlclient.so.20 /usr/lib/libmysqlclient.so.16 + ln -sf ${Setup_Path}/lib/libmysqlclient.so.20 /usr/lib64/libmysqlclient.so.16 + ln -sf ${Setup_Path}/lib/libmysqlclient.so.20 /usr/lib/libmysqlclient.so.18 + ln -sf ${Setup_Path}/lib/libmysqlclient.so.20 /usr/lib64/libmysqlclient.so.18 + ln -sf ${Setup_Path}/lib/libmysqlclient.so.20 /usr/lib/libmysqlclient.so.20 + ln -sf ${Setup_Path}/lib/libmysqlclient.so.20 /usr/lib64/libmysqlclient.so.20 + elif [ -f "${Setup_Path}/lib/libmysqlclient.so.21" ];then + ln -sf ${Setup_Path}/lib/libmysqlclient.so.21 /usr/lib/libmysqlclient.so.16 + ln -sf ${Setup_Path}/lib/libmysqlclient.so.21 /usr/lib64/libmysqlclient.so.16 + ln -sf ${Setup_Path}/lib/libmysqlclient.so.21 /usr/lib/libmysqlclient.so.18 + ln -sf ${Setup_Path}/lib/libmysqlclient.so.21 /usr/lib64/libmysqlclient.so.18 + ln -sf ${Setup_Path}/lib/libmysqlclient.so.21 /usr/lib/libmysqlclient.so.20 + ln -sf ${Setup_Path}/lib/libmysqlclient.so.21 /usr/lib64/libmysqlclient.so.20 + ln -sf ${Setup_Path}/lib/libmysqlclient.so.21 /usr/lib/libmysqlclient.so.21 + ln -sf ${Setup_Path}/lib/libmysqlclient.so.21 /usr/lib64/libmysqlclient.so.21 + elif [ -f "${Setup_Path}/lib/libmariadb.so.3" ]; then + ln -sf ${Setup_Path}/lib/libmariadb.so.3 /usr/lib/libmysqlclient.so.16 + ln -sf ${Setup_Path}/lib/libmariadb.so.3 /usr/lib64/libmysqlclient.so.16 + ln -sf ${Setup_Path}/lib/libmariadb.so.3 /usr/lib/libmysqlclient.so.18 + ln -sf ${Setup_Path}/lib/libmariadb.so.3 /usr/lib64/libmysqlclient.so.18 + ln -sf ${Setup_Path}/lib/libmariadb.so.3 /usr/lib/libmysqlclient.so.20 + ln -sf ${Setup_Path}/lib/libmariadb.so.3 /usr/lib64/libmysqlclient.so.20 + ln -sf ${Setup_Path}/lib/libmariadb.so.3 /usr/lib/libmysqlclient.so.21 + ln -sf ${Setup_Path}/lib/libmariadb.so.3 /usr/lib64/libmysqlclient.so.21 + elif [ -f "${Setup_Path}/lib/mysql/libmysqlclient.so.20" ];then + ln -sf ${Setup_Path}/lib/mysql/libmysqlclient.so.20 /usr/lib/libmysqlclient.so.16 + ln -sf ${Setup_Path}/lib/mysql/libmysqlclient.so.20 /usr/lib64/libmysqlclient.so.16 + ln -sf ${Setup_Path}/lib/mysql/libmysqlclient.so.20 /usr/lib/libmysqlclient.so.18 + ln -sf ${Setup_Path}/lib/mysql/libmysqlclient.so.20 /usr/lib64/libmysqlclient.so.18 + ln -sf ${Setup_Path}/lib/mysql/libmysqlclient.so.20 /usr/lib/libmysqlclient.so.20 + ln -sf ${Setup_Path}/lib/mysql/libmysqlclient.so.20 /usr/lib64/libmysqlclient.so.20 + fi +} + +My_Cnf(){ + if [ "${version}" == "5.1" ]; then + defaultEngine="MyISAM" + + else + defaultEngine="InnoDB" + fi + cat > /etc/my.cnf<&1|tee /tmp/mysql_config.pl + elif [ "${version}" == "5.5" ]; then + gccVersionCheck + cmake -DCMAKE_INSTALL_PREFIX=${Setup_Path} -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_READLINE=1 -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 ${i_make_args} 2>&1|tee /tmp/mysql_config.pl + elif [ "${version}" == "5.6" ]; then + cmake -DCMAKE_INSTALL_PREFIX=${Setup_Path} -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 ${WITH_SSL} ${i_make_args} 2>&1|tee /tmp/mysql_config.pl + elif [ "${version}" == "5.7" ]; then + mkdir install + cd install + cmake .. -DCMAKE_INSTALL_PREFIX=${Setup_Path} -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DWITH_BOOST=../boost ${WITH_SSL} ${i_make_args} ${GREATSQL_57_SET} 2>&1|tee /tmp/mysql_config.pl + elif [ "${version}" == "8.0" ]; then + mkdir install + cd install + cmakeV="cmake" + if [ "${PM}" = "yum" ]; then + if [ "${Centos7Check}" ];then + yum install centos-release-scl-rh -y + if [ -f "/etc/yum.repos.d/CentOS-SCLo-scl-rh.repo" ];then + sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo + sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.epel.cloud|g' /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo + fi + yum install devtoolset-8-gcc devtoolset-8-gcc-c++ -y + yum install cmake3 -y + cmakeV="cmake3" + export CC=/opt/rh/devtoolset-8/root/usr/bin/gcc + export CXX=/opt/rh/devtoolset-8/root/usr/bin/g++ + else + export CC=/usr/bin/gcc + export CXX=/usr/bin/g++ + fi + fi + ${cmakeV} .. -DCMAKE_INSTALL_PREFIX=${Setup_Path} -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DENABLED_LOCAL_INFILE=1 -DWITH_BOOST=../boost ${WITH_SSL} ${i_make_args} 2>&1|tee /tmp/mysql_config.pl + elif [ "${version}" == "8.4" ]; then + mkdir install + cd install + cmakeV="cmake" + if [ "${PM}" = "yum" ]; then + if [ "${Centos7Check}" ];then + yum install centos-release-scl-rh -y + if [ -f "/etc/yum.repos.d/CentOS-SCLo-scl-rh.repo" ];then + sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo + sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.epel.cloud|g' /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo + fi + yum install devtoolset-10-gcc devtoolset-10-gcc-c++ -y + yum install cmake3 -y + cmakeV="cmake3" + export CC=/opt/rh/devtoolset-10/root/usr/bin/gcc + export CXX=/opt/rh/devtoolset-10/root/usr/bin/g++ + else + export CC=/usr/bin/gcc + export CXX=/usr/bin/g++ + fi + fi + ${cmakeV} .. -DCMAKE_INSTALL_PREFIX=${Setup_Path} -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DENABLED_LOCAL_INFILE=1 ${GREATSQL_80_SET} ${WITH_SSL} ${i_make_args} 2>&1|tee /tmp/mysql_config.pl + elif [ "${version}" == "9.0" ]; then + mkdir install + cd install + cmakeV="cmake" + if [ "${PM}" = "yum" ]; then + if [ "${Centos7Check}" ];then + yum install centos-release-scl-rh -y + if [ -f "/etc/yum.repos.d/CentOS-SCLo-scl-rh.repo" ];then + sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo + sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.epel.cloud|g' /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo + fi + yum install devtoolset-10-gcc devtoolset-10-gcc-c++ -y + yum install cmake3 -y + cmakeV="cmake3" + export CC=/opt/rh/devtoolset-10/root/usr/bin/gcc + export CXX=/opt/rh/devtoolset-10/root/usr/bin/g++ + else + export CC=/usr/bin/gcc + export CXX=/usr/bin/g++ + fi + fi + ${cmakeV} .. -DCMAKE_INSTALL_PREFIX=${Setup_Path} -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DENABLED_LOCAL_INFILE=1 ${GREATSQL_80_SET} ${WITH_SSL} ${i_make_args} 2>&1|tee /tmp/mysql_config.pl + elif [ "${version}" == "alisql" ]; then + cmake -DCMAKE_INSTALL_PREFIX=${Setup_Path} -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=${Data_Path} -DMYSQL_TCP_PORT=3306 -DENABLE_DOWNLOADS=1 ${i_make_args} 2>&1|tee /tmp/mysql_config.pl + elif [ "${version}" == "mariadb_10.0" ]; then + cmake -DCMAKE_INSTALL_PREFIX=${Setup_Path} -DWITH_ARIA_STORAGE_ENGINE=1 -DWITH_XTRADB_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_READLINE=1 -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 ${i_make_args} 2>&1|tee /tmp/mysql_config.pl + elif [ "${version}" == "mariadb_10.6" ] || [ "${version}" == "mariadb_10.5" ]; then + cmakeV="cmake" + if [ "${PM}" = "yum" ]; then + if [ "${Centos7Check}" ];then + yum install centos-release-scl-rh -y + if [ -f "/etc/yum.repos.d/CentOS-SCLo-scl-rh.repo" ];then + sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo + sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.epel.cloud|g' /etc/yum.repos.d/CentOS-SCLo-scl-rh.repo + fi + yum install devtoolset-7-gcc devtoolset-7-gcc-c++ -y + yum install cmake3 -y + cmakeV="cmake3" + export CC=/opt/rh/devtoolset-7/root/usr/bin/gcc + export CXX=/opt/rh/devtoolset-7/root/usr/bin/g++ + else + export CC=/usr/bin/gcc + export CXX=/usr/bin/g++ + fi + ${cmakeV} -DCMAKE_INSTALL_PREFIX=${Setup_Path} -DWITH_ARIA_STORAGE_ENGINE=1 -DWITH_XTRADB_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_READLINE=1 -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DWITHOUT_TOKUDB=1 ${i_make_args} 2>&1|tee /tmp/mysql_config.pl + else + cmake -DCMAKE_INSTALL_PREFIX=${Setup_Path} -DWITH_ARIA_STORAGE_ENGINE=1 -DWITH_XTRADB_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_READLINE=1 -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DWITHOUT_TOKUDB=1 ${i_make_args} 2>&1|tee /tmp/mysql_config.pl + fi + elif [ "${version}" == "mariadb_10.7" ] || [ "${version}" == "mariadb_10.8" ] || [ "${version}" == "mariadb_10.11" ] || [ "${version}" == "mariadb_11.3" ]; then + cmakeV="cmake" + if [ "${PM}" = "yum" ]; then + if [ "${Centos7Check}" ];then + yum install centos-release-scl-rh -y + yum install devtoolset-7-gcc devtoolset-7-gcc-c++ -y + yum install cmake3 -y + cmakeV="cmake3" + export CC=/usr/bin/gcc + export CXX=/usr/bin/g++ + fi + ${cmakeV} -DCMAKE_INSTALL_PREFIX=${Setup_Path} -DWITH_ARIA_STORAGE_ENGINE=1 -DWITH_XTRADB_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_READLINE=1 -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DWITHOUT_TOKUDB=1 ${i_make_args} 2>&1|tee /tmp/mysql_config.pl + else + cmake -DCMAKE_INSTALL_PREFIX=${Setup_Path} -DWITH_ARIA_STORAGE_ENGINE=1 -DWITH_XTRADB_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_READLINE=1 -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DWITHOUT_TOKUDB=1 ${i_make_args} 2>&1|tee /tmp/mysql_config.pl + fi + else + cmake -DCMAKE_INSTALL_PREFIX=${Setup_Path} -DWITH_ARIA_STORAGE_ENGINE=1 -DWITH_XTRADB_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_READLINE=1 -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DWITHOUT_TOKUDB=1 ${i_make_args} 2>&1|tee /tmp/mysql_config.pl + fi + set -o pipefail + make -j${cpuCore} 2>&1|tee /tmp/mysql_make.pl + + if [ $? -ne 0 ];then + echo '========================================================' + GetSysInfo + WSL_CHECK=$(uname -a|grep WSL) + echo -e "ERROR: mysql ${version} installation failed."; + if [ "${WSL_CHECK}" ];then + echo "检测为windows wsl系统进行安装,未对此环境进行兼容测试" + echo "建议使用虚拟机安装ubuntu-22使用或使用云服务器安装宝塔面板" + fi + + CC_KILL_CHECK=$(cat /tmp/mysql_make.pl |grep "Killed") + if [ "${CC_KILL_CHECK}" ];then + echo "检测到编译进程被杀死,一般由以下原因造成" + echo "1.服务器内存不足,建议增加服务器内存/更换低版本mysql/使用极速方式安装" + echo "2.开启了安全防护软件导致进程被kill,请关闭安全防护软件后再进行安装" + exit 1 + fi + + if [ -z "${SYS_VERSION}" ];then + echo -e "============================================" + echo -e "检测到为非常用系统安装,请尝试安装其他Mysql版本看是否正常" + echo -e "如无法正常安装,建议更换至Centos-7或Debian-10+或Ubuntu-20+系统安装宝塔面板" + echo -e "详情请查看系统兼容表:https://docs.qq.com/sheet/DUm54VUtyTVNlc21H?tab=BB08J2" + echo -e "特殊情况可通过以下联系方式寻求安装协助情况" + echo -e "============================================" + fi + echo -e "安装失败,请截图以上报错信息发帖至论坛www.bt.cn/bbs求助" + echo -e "============================================" + if [ "${version}" == "mariadb_10.0" ] || [ "${version}" == "mariadb_10.1" ] || [ "${version}" == "mariadb_10.2" ] || [ "${version}" == "mariadb_10.3" ] || [ "${version}" == "mariadb_10.7" ] || [ "${version}" == "mariadb_10.8" ];then + echo -e "${version}安装失败 此版本mariadb官方已经不再维护" + echo -e "建议选择mariadb-10.4/10.5/10.6/10.11进行安装" + echo -e "============================================" + exit 1; + fi + WSL_CHECK=$(uname -a|grep Microsoft) + if [ "${WSL_CHECK}" ];then + echo -e "宝塔未兼容测试过Microsoft WSL子系统进行安装" + echo -e "建议使用虚拟机安装ubuntu-22安装宝塔面板" + exit 1 + fi + VELINUX_CHECK=$(uname -a|grep velinux1) + if [ "$VELINUX_CHECK" ];then + echo -e "宝塔未兼容测试过velinux系统进行安装" + echo -e "建议更换至Centos-7或Debian-10+或Ubuntu-20+系统安装宝塔面板板" + exit 1 + fi + rockchip64_CHECK=$(uname -a|grep rockchip64) + if [ "$VELINUX_CHECK" ];then + echo -e "宝塔未兼容测试过rockchip64系统进行安装" + echo -e "建议更换至Centos-7或Debian-10+或Ubuntu-20+服务器系统安装宝塔面板板" + exit 1 + fi + KALI_CHECK=$(uname -a|grep Kali) + if [ "${WSL_CHECK}" ];then + echo -e "宝塔未兼容测试过Kali系统进行安装" + echo -e "建议更换至Centos-7或Debian-10+或Ubuntu-20+系统安装宝塔面板板" + exit 1 + fi + ARMBIAN_CHECK=$(uname -a|grep Armbian) + if [ "${ARMBIAN_CHECK}" ];then + echo -e "宝塔未详细兼容测试过Armbian系统进行安装" + echo -e "建议更换至Centos-7或Debian-10+或Ubuntu-20+系统安装宝塔面板板" + exit 1 + fi + RJ3328_CHECK=$(uname -a|grep rk3328) + if [ "${RJ3328_CHECK}" ];then + echo -e "宝塔未兼容测试过电视盒子进行安装" + echo -e "建议更换至Centos-7或Debian-10+或Ubuntu-20+系统安装宝塔面板板" + exit 1 + fi + XIAOMI_CHECK=$(uname -a|grep xiaomi) + if [ "${XIAOMI_CHECK}" ];then + echo -e "宝塔未兼容测试过安卓手机进行安装" + echo -e "建议更换至Centos-7或Debian-10+或Ubuntu-20+服务器系统安装宝塔面板板" + exit 1 + fi + KY_10_CHECK=$(uname -a|grep ky10) + if [ "${KY_10_CHECK}" ];then + exit 1 + fi + if [ -f "/etc/redhat-release" ];then + LINUX_KIT_CHECK=$(uname -a|grep linuxkit) + if [ "${LINUX_KIT_CHECK}" ];then + echo -e "宝塔未兼容测试过linuxkit(docker)环境下进行安装" + echo -e "建议更换至服务器系统Centos-7或Debian-10+或Ubuntu-20+系统安装宝塔面板板" + exit 1 + fi + BBR_CHECK=$(uname -a|grep bbrplus) + if [ "${BBR_CHECK}" ];then + echo -e "检测已使用bbr更新过内核,建议更新完内核在安装宝塔面板然后再安装软件" + echo -e "或如需高版本内核,可使用Ubuntu-22/Debian-12进行安装宝塔面板" + exit 1 + fi + ELREPO_CHECK=$(uname -a|grep elrepo) + if [ "${ELREPO_CHECK}" ];then + echo -e "检测更新过内核,建议更新完内核在安装宝塔面板然后再安装软件" + echo -e "或如需高版本内核,可使用Ubuntu-22/Debian-12进行安装宝塔面板" + exit 1 + fi + + fi + + if [ "${PM}" == "apt-get" ];then + UBUNTU_23_CHECK=$(cat /etc/issue|grep Ubuntu|grep 23) + if [ "${UBUNTU_23_CHECK}" ];then + echo -e "宝塔未兼容测试过Ubuntu-23(预览版)环境下进行安装" + echo -e "建议更换至服务器系统Centos-7或Debian-12或Ubuntu-22系统安装宝塔面板板" + exit 1 + fi + POP_CHECK=$(cat /etc/issue|grep Pop) + if [ "${POP_CHECK}" ];then + echo -e "宝塔未兼容测试过Pop!_OS 环境下进行安装" + echo -e "建议更换至服务器系统Centos-7或Debian-12或Ubuntu-22系统安装宝塔面板板" + exit 1 + fi + fi + # Error_Send + exit 1; + fi + set -o pipefail +} +Install_Mysql(){ + if [ "${actionType}" == "update" ]; then + /etc/init.d/mysqld stop + sleep 2 + make install + sleep 2 + /etc/init.d/mysqld start + printVersion + rm -f ${Setup_Path}/version_check.pl + rm -f ${Setup_Path}/src.tar.gz + rm -rf ${Setup_Path}/src + exit 0; + fi + make install + + [ "${version}" == "8.0" ] || [ "${version}" == "mariadb_10.2" ] || [ "${version}" == "mariadb_10.3" ] || [ "${version}" == "mariadb_10.4" ]&& echo "True" > ${Setup_Path}/mysqlDb3.pl +} +Mysql_Initialize(){ + if [ -d "${Data_Path}" ]; then + rm -rf ${Data_Path}/* + else + mkdir -p ${Data_Path} + fi + + chown -R mysql:mysql ${Data_Path} + chgrp -R mysql ${Setup_Path}/. + + if [ "${version}" == "mariadb_10.4" ] || [ "${version}" == "mariadb_10.5" ]; then + mkdir -p ${Setup_Path}/lib/plugin/auth_pam_tool_dir/auth_pam_tool_dir + wget -O ${Setup_Path}/scripts/mysql_install_db ${download_Url}/tools/mysql_install_db + Authentication_Method="--auth-root-authentication-method=normal" + fi + + if [ "${version}" == "mariadb_10.6" ] || [ "${version}" == "mariadb_10.7" ] || [ "${version}" == "mariadb_10.11" ] || [ "${version}" == "mariadb_11.3" ]; then + mkdir -p ${Setup_Path}/lib/plugin/auth_pam_tool_dir/auth_pam_tool_dir + Authentication_Method="--auth-root-authentication-method=normal" + if [ -d "/etc/mysql" ];then + mv /etc/mysql /etc/mysql.bak + fi + fi + + if [ -d "/etc/mysql" ];then + mv /etc/mysql /etc/mysql.bak + fi + + if [ "${version}" == "5.1" ]; then + ${Setup_Path}/bin/mysql_install_db --defaults-file=/etc/my.cnf --basedir=${Setup_Path} --datadir=${Data_Path} --user=mysql + elif [ "${version}" == "5.7" ] || [ "${version}" == "8.0" ] || [ "${version}" == "8.4" ] || [ "${version}" == "9.0" ];then + ${Setup_Path}/bin/mysqld --initialize-insecure --basedir=${Setup_Path} --datadir=${Data_Path} --user=mysql + else + ${Setup_Path}/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=${Setup_Path} --datadir=${Data_Path} --user=mysql ${Authentication_Method} + fi + + rm -f /etc/init.d/mysqld + \cp support-files/mysql.server /etc/init.d/mysqld + chmod 755 /etc/init.d/mysqld + + if [[ "${version}" != "5.7" && "${version}" != "8.0" && "${version}" != "8.4" && "${version}" != "9.0" ]]; then + sed -i "s#\"\$\*\"#--sql-mode=\"NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION\"#" /etc/init.d/mysqld + fi + + sed -i 's/$bindir\/mysqld_safe /&--defaults-file="\/etc\/my.cnf" /' /etc/init.d/mysqld + sed -i '/case "$mode" in/i\ulimit -s unlimited' /etc/init.d/mysqld + + cat > /etc/ld.so.conf.d/mysql.conf<