脚本安装mysql-5.6.15-linux-glibc2.5-x86_64.tar.gz
先准备好数据文件的路径
softdir='/data/soft'
把脚本和tar包放在相应的路径下,其实就是源码安装的一个shell封装,记得修改innodb的一些参数
#!/bin/bash clear echo "=========================================================================" echo "" echo "Mysql for Centos6.x Install scripts " echo "Default Install PATH:/usr/local/mysql" echo "Default mysql default password:mysql" echo "=========================================================================" echo "" echo "" read -p "If the OK! Press any key to start..." basedir='/usr/local/mysql' datadir='/data/mysqldata/3306' softdir='/data/soft' user='mysql' group='mysql' logs=/tmp/install`date +%F`.log port=3306 curDate=`date +'%Y%m%d'` myFile=mysql-5.6.15-linux-glibc2.5-x86_64.tar.gz echo "`date +%F` beginning !" >>$logs #create mysql datadir if [ ! -d $datadir ];then mkdir -p /data/mysqldata/{3306/{data,tmp,binlog,slave,log/iblog},backup,scripts} echo -e "create datadir the mysql" >>$logs fi #create mysql basedir #if [ ! -d $basedir ];then # mkdir -p /usr/local/mysql # echo -e "create basedir the mysql" >>$logs #fi #create mysqlsoft basedir if [ ! -d $softdir ];then mkdir -p /data/soft echo -e "create basedir the mysql" >>$logs fi base() { echo "EVN Initialization..." yum install -y gcc gcc-* make cmake gcc-c++ libaio libaio-devel bison bison-devel autoconf automake zlib* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* --skip-broken sleep 3 yum install -y openssl openssl-devel ncurses ncurses-devel --skip-broken sleep 3 yum install -y 'perl(Data::Dumper)' groupadd mysql useradd -g mysql mysql } download() { echo "Download soft..." cd $softdir if [ ! -f "$myFile" ]; then # wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15-linux-glibc2.5-x86_64.tar.gz #echo -e "download soft the mysql" >>$logs echo -e "cannt find mysql file,pls download" >>$logs exit 1 fi } install(){ cd $softdir tar -zxvf mysql-5.6.15-linux-glibc2.5-x86_64.tar.gz -C /usr/local/ cd /usr/local/ ln -s mysql-5.6.15-linux-glibc2.5-x86_64 mysql echo -e "use mysql blibc to install" >>$logs touch /data/mysqldata/3306/my.cnf export MYSQL_PORT=${port} ## generate server id server_id=`date +'%y%m%d%H%M'` export MYSQL_SERVER_ID=${server_id} cat >> /data/mysqldata/3306/my.cnf << EOF [client] port=3306 socket=/data/mysqldata/3306/mysql.sock [mysql] prompt = [\u@\p][\d]>\_ no-auto-rehash pid_file=/data/mysqldata/3306/mysqld.pid [mysqldump] single-transaction [mysqld] autocommit=1 general_log=off explicit_defaults_for_timestamp=true #character set character-set-server = utf8 event_scheduler = 1 # system basedir=/usr/local/mysql datadir=/data/mysqldata/3306/data max_allowed_packet=32M max_connections=300 max_user_connections=280 max_connect_errors = 1000000 open_files_limit=65535 query_cache_type=0 query_cache_size=0 #timeout lock_wait_timeout=120 interactive_timeout = 300 wait_timeout = 300 port=3306 server_id=${MYSQL_SERVER_ID} skip_name_resolve=ON socket=/data/mysqldata/3306/mysql.sock tmpdir=/data/mysqldata/3306/tmp #binlog log_bin=/data/mysqldata/3306/binlog/mysql-bin binlog_cache_size=32K binlog_format=row #expire_logs_days=90 log_slave_updates=ON max_binlog_cache_size=1G max_binlog_size=500M sync_binlog=1 #transaction-isolation=READ-COMMITTED #logging log_error=/data/mysqldata/3306/log/mysql-error.log slow_query_log_file=/data/mysqldata/3306/log/mysql-slow.log log_queries_not_using_indexes=0 slow_query_log=1 log_slave_updates=ON log_slow_admin_statements=1 long_query_time=2 log-bin-trust-function-creators = 1 #gitd #gtid_mode = on #enforce_gtid_consistency = 1 #relay relay_log=/data/mysqldata/3306/slave/relaylog relay_log_index=/data/mysqldata/3306/slave/mysqld-relay-bin.index relay_log_info_file=/data/mysqldata/3306/slave/relay-log.info relay_log_recovery = 1 #slave slave_load_tmpdir=/data/mysqldata/3306/tmp slave_skip_errors=1032,1062 skip-slave-start #innodb innodb_data_home_dir=/data/mysqldata/3306/log/iblog innodb_log_group_home_dir=/data/mysqldata/3306/log/iblog innodb_adaptive_flushing=ON innodb_adaptive_hash_index=ON innodb_autoinc_lock_mode=2 innodb_buffer_pool_instances=2 #default innodb_change_buffering=inserts innodb_checksums=ON innodb_buffer_pool_size= 1024M innodb_data_file_path=ibdata1:1G:autoextend innodb_doublewrite=ON innodb_file_format=Barracuda innodb_file_per_table=ON innodb_flush_log_at_trx_commit=1 innodb_flush_method=O_DIRECT innodb_io_capacity=1000 innodb_lock_wait_timeout=10 innodb_log_buffer_size=200M innodb_log_file_size=1G innodb_log_files_in_group=4 innodb_max_dirty_pages_pct=60 innodb_open_files=60000 innodb_purge_threads=4 innodb_stats_on_metadata=OFF innodb_support_xa=ON innodb_use_native_aio=OFF innodb_write_io_threads = 8 innodb_read_io_threads = 8 [mysqld_safe] datadir=/data/mysqldata/3306/data EOF chown -R mysql:mysql /usr/local/mysql/ chown -R mysql:mysql /data/mysqldata/ #su - mysql sudo -u mysql /usr/local/mysql/scripts/mysql_install_db --defaults-file=/data/mysqldata/3306/my.cnf --datadir=/data/mysqldata/3306/data --basedir=/usr/local/mysql --user=mysql sleep 3 sudo -u mysql /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysqldata/3306/my.cnf & echo 'export PATH="/usr/local/mysql/bin:$PATH"' >>/home/mysql/.bash_profile echo 'export LANG=en_US.UTF-8' >>/home/mysql/.bash_profile echo 'export MYSQL_PS1="(u@h:p) [d]> "' >>/home/mysql/.bash_profile source /home/mysql/.bash_profile } end() { clear echo "" echo "" } ##设置显示脚本运行时间## function start_time() { start_time="$(date +%s)" echo "$(date) 开始安装!!" echo "$start_time" > /tmp/install_lnmp_runtime } function end_time() { end_time="$(date +%s)" total_s=$(($end_time - $start_time)) total_m=$(($total_s/60)) if [ $total_s -lt 60 ]; then time_en="${total_s} 秒" else time_en="${total_m} 分" fi echo "$(date) 完成安装" echo "运行install_lnmp.sh 所花的时间:${time_en}">/tmp/install_lnmp_runtime echo "总共运行时间: ${time_en}" } main() { start_time echo "Installtion MYSQL..." base download install end end_time } main