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