<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      liuziyi

      liuziyi

      【腳本】一鍵完成MySQL任意版本的安裝部署

      #!/bin/bash
      set -euo pipefail
      exec > >(tee -i mysql_install.log)
      exec 2>&1
      
      echo "-----------------------------開始MYSQL安裝--------------------------------------"
      start_time=$(date +%s)
      
      # 檢測root權限
      [[ $EUID -ne 0 ]] && { echo -e "\e[31m錯誤:必須使用root用戶執行此腳本\e[0m"; exit 1; }
      
      # 默認配置
      DEFAULT_VERSION="8.0.37"
      MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD:-$(openssl rand -base64 12)}
      DATA_DIR="/data/mysql"
      BASE_DIR="/usr/local/mysql"
      
      # 獲取系統glibc版本,此處保留獲取操作但不做嚴格版本檢查
      GLIBC_VERSION=$(ldd --version | awk '/ldd/{print $NF}')
      echo "檢測到系統glibc版本: ${GLIBC_VERSION}"
      
      # 固定安裝包后綴為linux-glibc2.12-x86_64
      PKG_SUFFIX="linux-glibc2.12-x86_64"
      
      # 用戶輸入版本
      read -p "請輸入MySQL版本(默認:${DEFAULT_VERSION}): " version
      version=${version:-${DEFAULT_VERSION}}
      
      # 安裝包名稱
      INSTALL_PKG="mysql-${version}-${PKG_SUFFIX}.tar.xz"
      echo "正在檢查安裝包: ${INSTALL_PKG}"
      
      # 檢查安裝包是否存在
      if [[ ! -f "${INSTALL_PKG}" ]]; then
          echo -e "\e[31m錯誤:安裝包 ${INSTALL_PKG} 不存在\e[0m"
          echo "請從以下地址下載后放到當前目錄:"
          echo "https://downloads.mysql.com/archives/community/"
          exit 1
      fi
      
      # 檢查現有進程
      if pgrep mysqld &>/dev/null; then
          echo -e "\e[31m檢測到正在運行的MySQL進程,正在停止...\e[0m"
          systemctl stop mysqld || pkill -9 mysqld
      fi
      
      # 清理舊數據
      cleanup_dirs=("${BASE_DIR}" "/etc/my.cnf" "/etc/my.cnf.d" "${DATA_DIR}" "/tmp/mysql.sock")
      for dir in "${cleanup_dirs[@]}"; do
          [[ -e "${dir}" ]] && rm -rf "${dir}" && echo "已清理 ${dir}"
      done
      
      # 安裝依賴
      echo "正在安裝系統依賴..."
      yum install -y libaio numactl ncurses-compat-libs > /dev/null || {
          echo -e "\e[31m依賴安裝失敗,請檢查網絡配置\e[0m"
          exit 1
      }
      
      # 創建用戶和目錄
      echo "創建系統用戶和目錄..."
      groupadd mysql > /dev/null 2>&1 || true
      useradd -r -g mysql -s /bin/false mysql > /dev/null 2>&1 || true
      mkdir -p "${BASE_DIR}" "${DATA_DIR}"
      chown -R mysql:mysql "${DATA_DIR}"
      
      # 解壓安裝包
      echo "正在解壓安裝包..."
      tar -xJf "${INSTALL_PKG}" -C "${BASE_DIR}" --strip-components=1
      
      # 配置文件
      echo "生成配置文件..."
      cat > /etc/my.cnf << EOF
      [mysqld]
      user=mysql
      port=3306
      basedir=${BASE_DIR}
      datadir=${DATA_DIR}
      socket=/tmp/mysql.sock
      log-error=${DATA_DIR}/mysql.err
      pid-file=${DATA_DIR}/mysql.pid
      
      character-set-server=utf8mb4
      collation-server=utf8mb4_0900_ai_ci
      explicit_defaults_for_timestamp=1
      log_bin=mysql-bin
      server_id=1
      innodb_file_per_table=1
      max_connections=1000
      
      [client]
      socket=/tmp/mysql.sock
      EOF
      
      # 初始化數據庫,去掉 --initialize-insecure 參數
      echo "正在初始化數據庫..."
      "${BASE_DIR}/bin/mysqld" --initialize \
          --user=mysql \
          --basedir="${BASE_DIR}" \
          --datadir="${DATA_DIR}"
      
      # 獲取臨時密碼
      TEMP_PASSWORD=$(grep 'A temporary password is generated for root@localhost' "${DATA_DIR}/mysql.err" | awk '{print $NF}')
      
      # 創建systemd服務
      echo "配置系統服務..."
      cat > /etc/systemd/system/mysqld.service << EOF
      [Unit]
      Description=MySQL Server
      After=network.target
      
      [Service]
      User=mysql
      Group=mysql
      ExecStart=${BASE_DIR}/bin/mysqld --defaults-file=/etc/my.cnf
      LimitNOFILE=10000
      Restart=always
      RestartSec=3
      
      [Install]
      WantedBy=multi-user.target
      EOF
      
      # 環境變量配置
      echo "export PATH=${BASE_DIR}/bin:\$PATH" > /etc/profile.d/mysql.sh
      source /etc/profile.d/mysql.sh
      
      # 啟動服務
      systemctl daemon-reload
      systemctl enable --now mysqld > /dev/null
      
      # 等待 MySQL 服務器啟動
      echo "等待 MySQL 服務器啟動..."
      sleep 10
      
      # 檢查套接字文件是否存在
      if [[ ! -S /tmp/mysql.sock ]]; then
          echo -e "\e[31m錯誤:套接字文件 /tmp/mysql.sock 未創建,請檢查日志文件 ${DATA_DIR}/mysql.err\e[0m"
          exit 1
      fi
      
      # 設置root密碼
      echo "正在配置安全設置..."
      "${BASE_DIR}/bin/mysql" -uroot -p"${TEMP_PASSWORD}" --connect-expired-password -e "
      ALTER USER 'root'@'localhost' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}';
      CREATE USER 'root'@'%' IDENTIFIED BY '${MYSQL_ROOT_PASSWORD}';
      GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
      FLUSH PRIVILEGES;
      "
      
      # 安裝完成提示
      end_time=$(date +%s)
      execution_time=$((end_time - start_time))
      
      echo -e "\n\e[32mMySQL安裝完成!\e[0m"
      echo -e "根密碼: \e[31m${MYSQL_ROOT_PASSWORD}\e[0m"
      echo -e "數據目錄: \e[34m${DATA_DIR}\e[0m"
      echo -e "安裝路徑: \e[34m${BASE_DIR}\e[0m"
      echo -e "配置文件: \e[34m/etc/my.cnf\e[0m"
      echo "腳本執行時間:${execution_time} 秒"
      
      # 清理安裝包(可選)
      # rm -f "${INSTALL_PKG}"
      

      使用方法:

      1. 從官網下載對應版本的MySQL二進制包(如mysql-8.0.37-linux-glibc2.12-x86_64.tar.xz)
      2. 將安裝腳本和安裝包放在同一目錄
      3. 執行腳本:chmod +x install_mysql.sh && ./install_mysql.sh

      安裝演示:

      [root@myoracle ~]# chmod +x install_mysql.sh && ./install_mysql.sh
      

      2

      歡迎關注公眾號《小周的數據庫進階之路》,更多精彩知識和干貨盡在其中。

      posted on 2025-10-31 17:42  劉子毅  閱讀(10)  評論(0)    收藏  舉報

      導航

      主站蜘蛛池模板: 中文人妻无码一区二区三区在线| 日本国产精品第一页久久| 九九热精品在线视频免费| 成人午夜视频一区二区无码| 99热成人精品热久久66| 暖暖视频日本在线观看| 国产精品国产三级国产试看| 男女啪啪永久免费观看网站| 91热在线精品国产一区| 亚洲精品香蕉一区二区| 99RE8这里有精品热视频| 日韩精品成人区中文字幕| 国产成人亚洲综合app网站| 97精品久久天干天天天按摩| 国产97色在线 | 免| 国产乱色熟女一二三四区| 国产成人午夜福利精品| 日韩淫片毛片视频免费看| 亚洲国产中文字幕精品| 国产成人精品午夜2022 | 亚洲欧美中文字幕日韩一区二区 | 免费a级毛视频| 亚洲av精彩一区二区| 伊人久久大香线蕉AV网| 色综合天天综合天天更新| 四虎永久播放地址免费| 国产精品亚洲中文字幕| 日本高清视频网站www| 亚洲色大成永久WW网站| 亚洲精品色哟哟一区二区| 欧美日韩国产图片区一区| 精品无码国产一区二区三区av| 萨迦县| 色综合久久天天综线观看| 国产不卡精品视频男人的天堂| 免费人成在线观看成人片| 色先锋av影音先锋在线| 国产日韩精品欧美一区灰| 老熟妇国产一区二区三区| 一区二区不卡国产精品| 国产不卡精品视频男人的天堂|