首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 自動化安裝腳本:Ubuntu 與 CentOS 64 位系統適用

     編輯:MySQL 資料庫相關知識

Ubuntu 系統自動化安裝腳本

適用於 Ubuntu 系統,自動檢測是否已安裝 MySQL 5.5,未安裝則自動安裝並設定 root 密碼。

#!/bin/bash

# 檢查套件是否已安裝
function hasDpkg {
    local pkg=$1
    local r=$(dpkg -l | grep "$pkg")
    if [ -n "$r" ]; then
        local h=$(dpkg -l | grep "ii $pkg")
        if [ -n "$h" ]; then
            return 1  # 已安裝
        else
            return 0  # 未安裝
        fi
    else
        return 0  # 未安裝
    fi
}

mysql_pkg="mysql-server-5.5"
hasDpkg $mysql_pkg
result=$?

if [ $result -eq 1 ]; then
    echo "$mysql_pkg was installed"
else
    echo "$mysql_pkg was not installed"
    # 預設設置 root 密碼為 'adv' (請根據實際需求修改)
    echo "mysql-server mysql-server/root_password password adv" | sudo debconf-set-selections
    echo "mysql-server mysql-server/root_password_again password adv" | sudo debconf-set-selections
    apt-get update && apt-get install -y $mysql_pkg
fi

CentOS 64 位系統自動化安裝腳本

適用於 CentOS/RHEL 6/7,使用 yum 安裝,並透過 SQL 腳本建立應用帳號。

#!/bin/bash

# 檢查 RPM 套件是否已安裝
function hasinstall {
    local pkg=$1
    local r=$(rpm -qa "$pkg")
    if [ -n "$r" ]; then
        return 1  # 已安裝
    else
        return 0  # 未安裝
    fi
}

mysql_pkg="mysql-server"
hasinstall $mysql_pkg
result=$?

if [ $result -eq 1 ]; then
    echo "$mysql_pkg was installed"
else
    echo "$mysql_pkg was not installed"
    yum install -y mysql mysql-server mysql-devel
    service mysqld start
    chkconfig mysqld on  # 設定開機自啟
fi

# 建立應用資料庫帳號
echo "INFORM: Enter database root password"
mysql -uroot -p -hlocalhost < /etc/cloud/mysql/adduser.sql

adduser.sql - 建立應用帳號腳本

-- 插入用戶 (忽略重複)
INSERT IGNORE INTO mysql.user (Host, User, Password)
VALUES ('localhost', 'loadserver', PASSWORD('adv'));
FLUSH PRIVILEGES;

-- 授予所有權限
GRANT ALL PRIVILEGES ON *.* TO 'loadserver'@'localhost' IDENTIFIED BY 'adv';
FLUSH PRIVILEGES;

使用說明與注意事項

  1. 密碼安全: 腳本中預設密碼 'adv' 僅供測試,**生產環境務必修改為強密碼**,並考慮使用環境變數或加密方式傳遞。
  2. 權限最小化: GRANT ALL ON *.* 權限過大,建議根據應用需求限制具體資料庫與權限 (如 SELECT, INSERT, UPDATE)。
  3. 版本選擇: Ubuntu 腳本指定 5.5 版本,CentOS 使用預設倉庫版本。生產環境建議指定具體版本 (如 MySQL 5.7/8.0 或 MariaDB 10.x)。
  4. 服務管理: CentOS 7+ 建議使用 systemctl enable mysqld 替代 chkconfig。
  5. 防火牆: 安裝後記得開放 3306 端口 (如 firewall-cmd --add-port=3306/tcp --permanent)。

擴展建議

  • 整合 mysql_secure_installation 自動化移除匿名用戶、禁止 root 遠程登入、移除 test 資料庫
  • 加入配置文件優化 (innodb_buffer_pool_size, max_connections 等)
  • 支援主從同步自動配置
  • 加入日誌輪轉與備份策略
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved