mariadb自動安裝腳本

Mariadb一鍵安裝腳本mysql

下載地址:https://mariadb.org/download/ linux

#!/bin/bash
#將安裝文件放在/usr/loca/下面,根據mariadb版本號不同,修改MYSQL_TAR和MYSQL_UNZIP_FILE參數的版本號,而後執行腳本進行安裝.
#腳本可重複執行,若是是已經有數據的狀況下,先把以前的數據目錄都備份好之後再執行腳本,防止數據被刪除.
# date: 2016.7.20
MYSQL_HOME='/usr/local/mysql'
MYSQL_TAR='/usr/local/mariadb-10.0.15-linux-x86_64.tar.gz'
MYSQL_UNZIP_FILE='/usr/local/mariadb-10.0.15-linux-x86_64'
MYSQL_UNDO='/usr/local/mysql/undo'
MYSQL_REDO='/usr/local/mysql/redo'
MYSQL_USER='mysql'
MYSQL_PASSWD='xusj'
MYSQL_PORT='3306'
MYSQL_CONF='/etc/my.cnf'
TIME=`date +%Y%m%d`

#mysql用戶/密碼/實例相關參數
root_passwd="111111"
database_name='xxfae'
username='xxfae'

rm -rf $MYSQL_UNZIP_FILE  && rm -rf $MYSQL_HOME

#安裝環境檢查
check_soft()
{
    if [ ! -f $MYSQL_TAR ];then
        echo "請確認安裝文件 $MYSQL_TAR 在$MYSQL_HOME目錄,從新執行$0"
        rm -rf $MYSQL_UNZIP_FILE > /dev/null 2>&1
        rm -rf $MYSQL_HOME > /dev/null 2>&1
        rm -rf /etc/my.cnf > /dev/null 2>&1
        rm -rf /etc/init.d/mysqld >/dev/null 2>&1
    fi
        pid=`pidof mysqld`
    if [ ! -z $pid ];then
        kill -9 $pid
        echo "mysqld在運行中,殺掉mysql進程" && sleep 1
    fi
}

#安裝環境準備
init()
{
    find / -name "mysql" -exec rm -rf {} \; >/dev/null 2>&1
    id mysql
    if [  "0" == "$?" ];then
        echo "mysql用戶存在,刪除mysql用戶和組" 
        pid=`pidof mysqld`
        kill -9  $pid >/dev/null 2>&1
        /usr/sbin/userdel -r  mysql > /dev/null 2>&1
        echo "1建立mysql用戶和組" && sleep 2
        /usr/sbin/groupadd mysql
        /usr/sbin/useradd -s /sbin/nologin -g mysql mysql
    else
        echo "2222建立mysql用戶和組" && sleep 2
        /usr/sbin/groupadd mysql
        /usr/sbin/useradd -s /sbin/nologin -g mysql mysql
    fi
}

#安裝程序
mysql_install()
{
    /bin/tar -zxf  $MYSQL_TAR  -C /usr/local/
    echo "建立mysql相關文件目錄" && sleep 2
    ln -s $MYSQL_UNZIP_FILE $MYSQL_HOME
    mkdir -p $MYSQL_REDO 
    mkdir -p $MYSQL_UNDO
    chmod -R 755 $MYSQL_HOME/
    chown -R mysql:mysql $MYSQL_HOME/
   
    cd $MYSQL_HOME/
    echo "MySQL安裝初始化..."
    ./scripts/mysql_install_db --user=$MYSQL_USER --innodb_undo_directory=$MYSQL_UNDO --innodb_undo_tablespaces=16
    if [ -n "$?" ] ;then
        echo "mysql install successful!"
        cp support-files/my-huge.cnf /etc/my.cnf
        cp support-files/mysql.server /etc/init.d/mysqld
    else
        echo "mysql install failed"
        exit 1    
    fi
}

#配置文件
mysql_conf()
{
    mv /etc/my.cnf /etc/my.cnf_$TIME.bak
    echo "[mysqld]
port		= 3306
socket		= /tmp/mysql.sock
skip-external-locking
key_buffer_size = 384M
max_allowed_packet = 1M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 0
query_cache_type=0
log_slave_updates=ON
sync_relay_log=1
innodb_buffer_pool_size=4000M
transaction-isolation=READ-COMMITTED
innodb_autoinc_lock_mode = 2
#skip-name-resolve
innodb_thread_concurrency=5
back-log=500
default-storage-engine=InnoDB
innodb_flush_method=O_DIRECT

innodb_undo_tablespaces = 16
innodb_undo_directory = /usr/local/mysql/undo
innodb_log_group_home_dir=/usr/local/mysql/redo
innodb_data_home_dir=/usr/local/mysql/data
character-set-server=utf8
collation-server=utf8_general_ci
lower_case_table_names = 1
log_bin_trust_function_creators=1
innodb_strict_mode=true
log-bin=mysql-bin
binlog_checksum=NONE
binlog_format=ROW
binlog_cache_size = 8M 
max_binlog_size = 500M 
max_binlog_cache_size = 100M
expire_logs_days = 7
innodb_log_file_size=512m
innodb-log-buffer-size=8M
innodb-log-files-in-group=2
default-tmp-storage-engine=InnoDB
innodb-autoextend-increment=16M
innodb-buffer-pool-instances=4
innodb-file-per-table=true
innodb_rollback_on_timeout=true
innodb-old-blocks-time=60000
innodb-print-all-deadlocks=true
open-files-limit=32767
innodb_open_files=32767
log-output=FILE
slow-query-log=true
log-queries-not-using-indexes=true
thread_handling=pool-of-threads
thread_pool_max_threads=100
thread_pool_size=50
thread_cache_size=64
max-connections=3000
event_scheduler=ON
server-id	= 1
performance_schema=on
performance-schema-instrument='wait/io/file/%=on'
performance-schema-instrument='wait/io/table/%=on'
performance-schema-instrument='statement/com/%=on'
performance-schema-instrument='statement/sql/%=on'
performance-schema-instrument='stage/sql/%=on'
performance-schema-consumer-events_stages_current=on
performance-schema-consumer-events_stages_history_long=on
performance_schema_events_statements_history_long_size=10000
performance-schema-consumer-events_statements_current=on
performance-schema-consumer-events_statements_history_long=on
performance_schema_events_statements_history_long_size=10000
performance-schema-consumer-events_waits_current=on
performance-schema-consumer-events_waits_history_long=on
performance_schema_events_waits_history_long_size=10000
performance-schema-consumer-statements_digest=on
performance_schema_digests_size=10000

[mysqldump]
quick
max_allowed_packet = 16M" > /etc/my.cnf
}

#mysql服務設置,啓動mysql
mysqld()
{
    chkconfig --add /etc/init.d/mysqld
    chkconfig mysqld on
    echo "啓動mysql..."
    service mysqld start
}

passwd()
{
    echo "設置mysql的root管理密碼成功!" && sleep 2
    source ~/.bash_profile
    mysqladmin -uroot password $root_passwd        
}

create_user()
{
    echo "建立mysql業務用戶$username,默認密碼爲123456,請登陸數據庫進行修改!" && sleep 2 
    mysql -uroot -e "grant all privileges on *.* to $username@'localhost' identified by '123456';"    
}

create_db()
{
    echo "建立數據庫實例$database_name,默認字符集爲UTF-8." && sleep 2
   mysql -uroot -e "use mysql; create database $database_name charset utf8;"  
}


check_soft && init && mysql_install &&mysql_conf && mysqld && create_user && create_db && passwd
相關文章
相關標籤/搜索