本文共 4613 字,大约阅读时间需要 15 分钟。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 | #! /bin/bash # v.mysql-5.6.30-linux-glibc2.5-x86_64.tar.gz # only install master mysql # time:2016-08-15 # pkg dir pkg_dir=` pwd ` # mysql base dir data_dir= "/data/mysql_root/mysql" base_dir= "/usr/local/mysql" # create MySQL group and user echo "start create mysql group and user" >> ${pkg_dir} /install .log groupadd mysql useradd -g mysql mysql -s /sbin/nologin echo "end mysql group and user" >> ${pkg_dir} /install .log # mysql datafile path # install mysqld # grant privileges mkdir -p ${data_dir} /data 2> /dev/null chown -R mysql:mysql ${data_dir} /data # un_tar.gz and install mysql programmer echo "start un_tar.gz..." >> ${pkg_dir} /install .log cd ${pkg_dir} && tar -xf mysql-5.6.30-linux-glibc2.5-x86_64. tar .gz -C /usr/local && cd /usr/local && mv mysql-5.6.30-linux-glibc2.5-x86_64 mysql; echo "end install mysql" >> ${pkg_dir} /install .log echo "set mysql my.cnf params" >> ${pkg_dir} /install .log # stored mysqld multi execute log mkdir -p ${base_dir} /multi_log 2> /dev/null # comm parameter of my.cnf cat <<EOF > ${base_dir} /my .cnf # The mysqld multi instance [mysqld_multi] mysqld = ${base_dir} /bin/mysqld_safe mysqladmin = ${base_dir} /bin/mysqladmin log =${base_dir} /multi_log/mysqld_multi .log [mysqldump] quick max_allowed_packet = 16M [mysql] no-auto-rehash [myisamchk] key_buffer_size = 256M sort_buffer_size = 256M read_buffer = 2M write_buffer = 2M [mysqlhotcopy] interactive-timeout EOF # other my.cnf parameter part pre_install_mysqld(){ cat <<EOF >> ${base_dir} /my .cnf # The MySQL server [mysqld${port:2}] port = ${port} socket = ${data_dir} /data ${port} /mysql .socket max-connections = 800 skip-name-resolve skip-external-locking key_buffer_size = 384M max_allowed_packet = 1073M table_open_cache = 512 sort_buffer_size = 512K read_buffer_size = 512K read_rnd_buffer_size = 512K join_buffer_size = 128K myisam_sort_buffer_size = 64M thread_cache_size = 256 query_cache_size = 0 query_cache_type = 0 tmp_table_size = 64M max_heap_table_size = 64M basedir=${base_dir} datadir=${data_dir} /data ${port} pid- file = ${data_dir} /data ${port} /mysql .pid log_error = ${data_dir} /data ${port} /mysql .err # set binary logging is required for replication log-bin=mysql-bin binlog_cache_size = 32M # event_scheduler shutoff in mysqld slave event_scheduler = 1 binlog_format=row expire_logs_days = 3 # set slow log slow_query_log = 1 long_query_time = 2 #set 字符 character_set_server = utf8 #set 大小写敏感 lower_case_table_names=1 # set mysqld server_id server- id = ${port} # set innodb params innodb_data_home_dir = ${data_dir} /data ${port} innodb_log_group_home_dir = ${data_dir} /data ${port} innodb_buffer_pool_size = 5972M innodb_additional_mem_pool_size = 10M innodb_log_file_size = 512M innodb_log_buffer_size = 16M innodb_flush_log_at_trx_commit = 2 innodb_flush_method = O_DIRECT innodb_file_per_table = 1 innodb_lock_wait_timeout = 10 innodb_file_format = Barracuda innodb_file_format_max = Barracuda innodb_stats_on_metadata = 0 innodb_purge_threads = 1 innodb_read_io_threads = 12 innodb_write_io_threads = 12 innodb_purge_threads = 1 innodb_open_files = 500 innodb_thread_concurrency = 0 innodb_io_capacity = 600 [client] default-character- set = utf8 EOF # initizal mysql Db chmod +x ${base_dir} /scripts/mysql_install_db ${base_dir} /scripts/mysql_install_db --basedir=${base_dir} --datadir=${data_dir} /data ${port} --user=mysql --defaults- file =${base_dir} /my .cnf >> ${pkg_dir} /install .log echo "end mysqld install." >> ${pkg_dir} /install .log } # mysql datafile path for port in 2016 3017 4018 5019 6020 do # check mysql base and data dir folder if [ ! -d ${data_dir} /data ${port} ]; then mkdir -p ${data_dir} /data ${port} # function mysqld_install to mysql programmer pre_install_mysqld $port else pre_install_mysqld $port fi done #mysql data chown -R mysql:mysql ${data_dir} /data chown -R mysql:mysql ${base_dir} /data #环境变量 echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile source /etc/profile |
本文转自 shouhou2581314 51CTO博客,原文链接:http://blog.51cto.com/thedream/1838263,如需转载请自行联系原作者