• mysql5.6源码自动安装脚本


    将脚本与源码安装包放在同一目录下,执行脚本即可(执行脚本会使用yum安装依赖包)
    安装完成之后,既可以使用mysql -uroot -p登录
     
    脚本内容如下:
    [root@mysql src]# cat install.sh
    #!/bin/bash
    mysql_install_dir=/usr/local/mysql
    mysql_data_dir=/data/mysql/data
    mysql_binlog_dir=/data/mysql/binlog
    mysql_logs_dir=/data/mysql/logs
    mysql_6_version=5.6.24
    dbrootpwd=123
     
    Mem=`free -m | awk '/Mem:/{print $2}'`
    Swap=`free -m | awk '/Swap:/{print $2}'`
     
    yum -y install make gcc-c++ cmake bison-devel ncurses-devel perl
    groupadd mysql
    id -u mysql >/dev/null 2>&1
    [ $? -ne 0 ] && useradd -M -g mysql mysql
     
    mkdir -p $mysql_data_dir && chown mysql:mysql -R $mysql_data_dir
    mkdir -p $mysql_binlog_dir && chown mysql:mysql -R $mysql_binlog_dir
    mkdir -p $mysql_logs_dir && chown mysql:mysql -R $mysql_logs_dir
     
    tar zxvf mysql-${mysql_6_version}.tar.gz
    cd mysql-$mysql_6_version
     
    [ ! -d "$mysql_install_dir" ] && mkdir -p $mysql_install_dir
    cmake
    -DCMAKE_INSTALL_PREFIX=$mysql_install_dir
    -DMYSQL_DATADIR=$mysql_data_dir
    -DSYSCONFDIR=/etc
    -DWITH_MYISAM_STORAGE_ENGINE=1
    -DWITH_INNOBASE_STORAGE_ENGINE=1
    -DWITH_MEMORY_STORAGE_ENGINE=1
    -DWITH_READLINE=1
    -DMYSQL_UNIX_ADDR=/tmp/mysql.sock
    -DMYSQL_TCP_PORT=3306
    -DENABLED_LOCAL_INFILE=1
    -DWITH_PARTITION_STORAGE_ENGINE=1
    -DEXTRA_CHARSETS=all
    -DDEFAULT_CHARSET=utf8
    -DDEFAULT_COLLATION=utf8_general_ci
     
    make -j `cat /proc/cpuinfo | grep processor| wc -l` && make install
    #make && make install
     
    if [ -d "$mysql_install_dir/support-files" ];then
        echo "${CSUCCESS}MySQL install successfully! ${CEND}"
        cd ..
        rm -rf mysql-$mysql_6_version
    else
        rm -rf $mysql_install_dir
        echo "${CFAILURE}MySQL install failed, Please contact the author! ${CEND}"
        kill -9 $$
    fi
     
    cd ..
     
    # my.cf
    [ -d "/etc/mysql" ] && /bin/mv /etc/mysql{,_bk}
    cat > /etc/my.cnf << EOF
    [client]
    port = 3306
    socket = /tmp/mysql.sock
    default-character-set = utf8
     
    [mysqld]
    port = 3306
    socket = /tmp/mysql.sock
     
    basedir = $mysql_install_dir
    datadir = $mysql_data_dir
    pid-file = $mysql_logs_dir/mysql.pid
    log_bin = $mysql_binlog_dir/binlog
    log_error = $mysql_logs_dir/mysql-error.log
    slow_query_log_file = $mysql_logs_dir/mysql-slow.log
    slow_query_log = 1
    long_query_time = 2
     
    bind-address = 0.0.0.0
    server-id = 1
     
    character-set-server=utf8
    init_connect="SET NAMES utf8"
     
    skip-name-resolve
    skip-external-locking
    #skip-networking
    back_log = 300
     
    max_connections = 1000
    max_connect_errors = 6000
    open_files_limit = 65535
    table_open_cache = 128
    max_allowed_packet = 4M
    binlog_cache_size = 1M
    max_heap_table_size = 8M
    tmp_table_size = 16M
     
    read_buffer_size = 2M
    read_rnd_buffer_size = 8M
    sort_buffer_size = 8M
    join_buffer_size = 8M
    key_buffer_size = 4M
    thread_cache_size = 8
    query_cache_type = 1
    query_cache_size = 8M
    query_cache_limit = 2M
    ft_min_word_len = 4
    binlog_format = mixed
    expire_logs_days = 10
    performance_schema = 0
    explicit_defaults_for_timestamp
     
    #lower_case_table_names = 1
    default_storage_engine = InnoDB
    #default-storage-engine = MyISAM
    innodb_file_per_table = 1
    innodb_open_files = 500
    innodb_buffer_pool_size = 64M
    innodb_write_io_threads = 4
    innodb_read_io_threads = 4
    innodb_thread_concurrency = 0
    innodb_purge_threads = 1
    innodb_flush_log_at_trx_commit = 2
    innodb_log_buffer_size = 2M
    innodb_log_file_size = 32M
    innodb_log_files_in_group = 3
    innodb_max_dirty_pages_pct = 90
    innodb_lock_wait_timeout = 120
     
    bulk_insert_buffer_size = 8M
    myisam_sort_buffer_size = 8M
    myisam_max_sort_file_size = 10G
    myisam_repair_threads = 1
     
    interactive_timeout = 28800
    wait_timeout = 28800
     
    [mysqldump]
    quick
    max_allowed_packet = 16M
     
    [myisamchk]
    key_buffer_size = 8M
    sort_buffer_size = 8M
    read_buffer = 4M
    write_buffer = 4M
     
    EOF
     
    if [ $Mem -gt 1500 -a $Mem -le 2500 ];then
        sed -i 's@^thread_cache_size.*@thread_cache_size = 16@' /etc/my.cnf
        sed -i 's@^query_cache_size.*@query_cache_size = 16M@' /etc/my.cnf
        sed -i 's@^myisam_sort_buffer_size.*@myisam_sort_buffer_size = 16M@' /etc/my.cnf
        sed -i 's@^key_buffer_size.*@key_buffer_size = 16M@' /etc/my.cnf
        sed -i 's@^innodb_buffer_pool_size.*@innodb_buffer_pool_size = 128M@' /etc/my.cnf
        sed -i 's@^tmp_table_size.*@tmp_table_size = 32M@' /etc/my.cnf
        sed -i 's@^table_open_cache.*@table_open_cache = 256@' /etc/my.cnf
    elif [ $Mem -gt 2500 -a $Mem -le 3500 ];then
        sed -i 's@^thread_cache_size.*@thread_cache_size = 32@' /etc/my.cnf
        sed -i 's@^query_cache_size.*@query_cache_size = 32M@' /etc/my.cnf
        sed -i 's@^myisam_sort_buffer_size.*@myisam_sort_buffer_size = 32M@' /etc/my.cnf
        sed -i 's@^key_buffer_size.*@key_buffer_size = 64M@' /etc/my.cnf
        sed -i 's@^innodb_buffer_pool_size.*@innodb_buffer_pool_size = 512M@' /etc/my.cnf
        sed -i 's@^tmp_table_size.*@tmp_table_size = 64M@' /etc/my.cnf
        sed -i 's@^table_open_cache.*@table_open_cache = 512@' /etc/my.cnf
    elif [ $Mem -gt 3500 ];then
        sed -i 's@^thread_cache_size.*@thread_cache_size = 64@' /etc/my.cnf
        sed -i 's@^query_cache_size.*@query_cache_size = 64M@' /etc/my.cnf
        sed -i 's@^myisam_sort_buffer_size.*@myisam_sort_buffer_size = 64M@' /etc/my.cnf
        sed -i 's@^key_buffer_size.*@key_buffer_size = 256M@' /etc/my.cnf
        sed -i 's@^innodb_buffer_pool_size.*@innodb_buffer_pool_size = 1024M@' /etc/my.cnf
        sed -i 's@^tmp_table_size.*@tmp_table_size = 128M@' /etc/my.cnf
        sed -i 's@^table_open_cache.*@table_open_cache = 1024@' /etc/my.cnf
    fi
     
    $mysql_install_dir/scripts/mysql_install_db --user=mysql --basedir=$mysql_install_dir --datadir=$mysql_data_dir
    /bin/cp $mysql_install_dir/support-files/mysql.server /etc/init.d/mysql
    chmod +x /etc/init.d/mysql
    chkconfig mysql on
    chown mysql:mysql -R $mysql_data_dir
    service mysql start
     
    echo "export PATH=$mysql_install_dir/bin:$PATH" >> /etc/profile
    source /etc/profile
     
    $mysql_install_dir/bin/mysql -e "grant all privileges on *.* to root@'127.0.0.1' identified by "$dbrootpwd" with grant option;"
    $mysql_install_dir/bin/mysql -e "grant all privileges on *.* to root@'localhost' identified by "$dbrootpwd" with grant option;"
    $mysql_install_dir/bin/mysql -uroot -p$dbrootpwd -e "delete from mysql.user where Password='';"
    $mysql_install_dir/bin/mysql -uroot -p$dbrootpwd -e "delete from mysql.db where User='';"
    $mysql_install_dir/bin/mysql -uroot -p$dbrootpwd -e "delete from mysql.proxies_priv where Host!='localhost';"
    $mysql_install_dir/bin/mysql -uroot -p$dbrootpwd -e "drop database test;"
    $mysql_install_dir/bin/mysql -uroot -p$dbrootpwd -e "reset master;"
    #rm -rf /etc/ld.so.conf.d/{mysql,mariadb,percona}*.conf
    #echo "$mysql_install_dir/lib" > mysql.conf
    #/sbin/ldconfig
    #service mysql stop
    [root@mysql src]#
  • 相关阅读:
    贝叶斯模型
    java的移位和异或运算
    windows下xgboost安装到python
    bagging and boosting
    SVM处理多分类问题
    GO语言语法入门
    [转自SA]浅谈nginx的工作原理和使用
    多线程编程-- part 9 信号量:Semaphore
    多线程编程-- part 8 CyclicBarrier
    多线程编程-- part 7 CountDownLatch
  • 原文地址:https://www.cnblogs.com/lizhi221/p/6813954.html
Copyright © 2020-2023  润新知