<code>#! /bin/bash</code>
<code># v.mysql-5.6.30-linux-glibc2.5-x86_64.tar.gz</code>
<code># only install master mysql</code>
<code># time:2016-08-15</code>
<code># pkg dir</code>
<code>pkg_dir=`</code><code>pwd</code><code>`</code>
<code># mysql base dir</code>
<code>data_dir=</code><code>"/data/mysql_root/mysql"</code>
<code>base_dir=</code><code>"/usr/local/mysql"</code>
<code># create MySQL group and user</code>
<code>echo</code> <code>"start create mysql group and user"</code> <code>>> ${pkg_dir}</code><code>/install</code><code>.log</code>
<code>groupadd mysql</code>
<code>useradd</code> <code>-g mysql mysql -s </code><code>/sbin/nologin</code>
<code>echo</code> <code>"end mysql group and user"</code> <code>>> ${pkg_dir}</code><code>/install</code><code>.log</code>
<code># mysql datafile path</code>
<code># install mysqld </code>
<code># grant privileges</code>
<code>mkdir</code> <code>-p ${data_dir}</code><code>/data</code> <code>2></code><code>/dev/null</code>
<code>chown</code> <code>-R mysql:mysql ${data_dir}</code><code>/data</code>
<code># un_tar.gz and install mysql programmer</code>
<code>echo</code> <code>"start un_tar.gz..."</code> <code>>> ${pkg_dir}</code><code>/install</code><code>.log</code>
<code>cd</code> <code>${pkg_dir} && </code><code>tar</code> <code>-xf mysql-5.6.30-linux-glibc2.5-x86_64.</code><code>tar</code><code>.gz -C </code><code>/usr/local</code> <code>&& </code><code>cd</code> <code>/usr/local</code> <code>&& </code><code>mv</code> <code>mysql-5.6.30-linux-glibc2.5-x86_64 mysql;</code>
<code>echo</code> <code>"end install mysql"</code> <code>>> ${pkg_dir}</code><code>/install</code><code>.log</code>
<code>echo</code> <code>"set mysql my.cnf params"</code> <code>>> ${pkg_dir}</code><code>/install</code><code>.log</code>
<code># stored mysqld multi execute log</code>
<code>mkdir</code> <code>-p ${base_dir}</code><code>/multi_log</code> <code>2></code><code>/dev/null</code>
<code># comm parameter of my.cnf </code>
<code>cat</code><code><<EOF > ${base_dir}</code><code>/my</code><code>.cnf</code>
<code># The mysqld multi instance</code>
<code>[mysqld_multi]</code>
<code>mysqld = ${base_dir}</code><code>/bin/mysqld_safe</code>
<code>mysqladmin = ${base_dir}</code><code>/bin/mysqladmin</code>
<code>log =${base_dir}</code><code>/multi_log/mysqld_multi</code><code>.log</code>
<code>[mysqldump]</code>
<code>quick</code>
<code>max_allowed_packet = 16M</code>
<code>[mysql]</code>
<code>no-auto-rehash</code>
<code>[myisamchk]</code>
<code>key_buffer_size = 256M</code>
<code>sort_buffer_size = 256M</code>
<code>read_buffer = 2M</code>
<code>write_buffer = 2M</code>
<code>[mysqlhotcopy]</code>
<code>interactive-timeout</code>
<code>EOF</code>
<code># other my.cnf parameter part </code>
<code>pre_install_mysqld(){</code>
<code>cat</code><code><<EOF >> ${base_dir}</code><code>/my</code><code>.cnf</code>
<code># The MySQL server</code>
<code>[mysqld${port:2}]</code>
<code>port = ${port} </code>
<code>socket = ${data_dir}</code><code>/data</code><code>${port}</code><code>/mysql</code><code>.socket</code>
<code>max-connections = 800</code>
<code>skip-name-resolve</code>
<code>skip-external-locking</code>
<code>key_buffer_size = 384M</code>
<code>max_allowed_packet = 1073M </code>
<code>table_open_cache = 512</code>
<code>sort_buffer_size = 512K </code>
<code>read_buffer_size = 512K</code>
<code>read_rnd_buffer_size = 512K</code>
<code>join_buffer_size = 128K</code>
<code>myisam_sort_buffer_size = 64M</code>
<code>thread_cache_size = 256</code>
<code>query_cache_size = 0</code>
<code>query_cache_type = 0</code>
<code>tmp_table_size = 64M</code>
<code>max_heap_table_size = 64M</code>
<code>basedir=${base_dir}</code>
<code>datadir=${data_dir}</code><code>/data</code><code>${port}</code>
<code>pid-</code><code>file</code> <code>= ${data_dir}</code><code>/data</code><code>${port}</code><code>/mysql</code><code>.pid</code>
<code>log_error = ${data_dir}</code><code>/data</code><code>${port}</code><code>/mysql</code><code>.err</code>
<code># set binary logging is required for replication</code>
<code>log-bin=mysql-bin</code>
<code>binlog_cache_size = 32M</code>
<code># event_scheduler shutoff in mysqld slave</code>
<code>event_scheduler = 1 </code>
<code>binlog_format=row</code>
<code>expire_logs_days = 3</code>
<code># set slow log</code>
<code>slow_query_log = 1</code>
<code>long_query_time = 2</code>
<code>#set 字元</code>
<code>character_set_server = utf8</code>
<code>#set 大小寫敏感</code>
<code>lower_case_table_names=1</code>
<code># set mysqld server_id</code>
<code>server-</code><code>id</code> <code>= ${port}</code>
<code># set innodb params</code>
<code>innodb_data_home_dir = ${data_dir}</code><code>/data</code><code>${port} </code>
<code>innodb_log_group_home_dir = ${data_dir}</code><code>/data</code><code>${port} </code>
<code>innodb_buffer_pool_size = 5972M</code>
<code>innodb_additional_mem_pool_size = 10M</code>
<code>innodb_log_file_size = 512M</code>
<code>innodb_log_buffer_size = 16M</code>
<code>innodb_flush_log_at_trx_commit = 2 </code>
<code>innodb_flush_method = O_DIRECT</code>
<code>innodb_file_per_table = 1</code>
<code>innodb_lock_wait_timeout = 10</code>
<code>innodb_file_format = Barracuda</code>
<code>innodb_file_format_max = Barracuda</code>
<code>innodb_stats_on_metadata = 0</code>
<code>innodb_purge_threads = 1</code>
<code>innodb_read_io_threads = 12</code>
<code>innodb_write_io_threads = 12</code>
<code>innodb_open_files = 500</code>
<code>innodb_thread_concurrency = 0</code>
<code>innodb_io_capacity = 600</code>
<code>[client]</code>
<code>default-character-</code><code>set</code> <code>= utf8</code>
<code># initizal mysql Db </code>
<code>chmod</code> <code>+x ${base_dir}</code><code>/scripts/mysql_install_db</code>
<code>${base_dir}</code><code>/scripts/mysql_install_db</code> <code>--basedir=${base_dir} --datadir=${data_dir}</code><code>/data</code><code>${port} --user=mysql --defaults-</code><code>file</code><code>=${base_dir}</code><code>/my</code><code>.cnf >> ${pkg_dir}</code><code>/install</code><code>.log</code>
<code>echo</code> <code>"end mysqld install."</code> <code>>> ${pkg_dir}</code><code>/install</code><code>.log</code>
<code>}</code>
<code>for</code> <code>port </code><code>in</code> <code>2016 3017 4018 5019 6020 </code>
<code>do</code>
<code> </code><code># check mysql base and data dir folder</code>
<code> </code><code>if</code> <code>[ ! -d ${data_dir}</code><code>/data</code><code>${port} ];</code><code>then</code>
<code> </code><code>mkdir</code> <code>-p ${data_dir}</code><code>/data</code><code>${port}</code>
<code> </code><code># function mysqld_install to mysql programmer</code>
<code> </code><code>pre_install_mysqld $port</code>
<code> </code><code>else</code>
<code> </code><code>fi</code>
<code>done</code>
<code>#mysql data</code>
<code>chown</code> <code>-R mysql:mysql ${base_dir}</code><code>/data</code>
<code>#環境變量</code>
<code>echo</code> <code>'export PATH=$PATH:/usr/local/mysql/bin'</code> <code>>> </code><code>/etc/profile</code>
<code>source</code> <code>/etc/profile</code>
本文轉自 shouhou2581314 51CTO部落格,原文連結:http://blog.51cto.com/thedream/1838263,如需轉載請自行聯系原作者