首页 > 代码库 > mysql自动安装脚本

mysql自动安装脚本

为适应自己工作习惯和需要,花一点时间写了一个mysql自动安装脚本,供大家参考学习。

注意:

1、需要先安装cmake

2、数据库版本需要在第二步安装mysql时修改

3、该脚本是以root用户安装并启动

脚本内容如下:

########################################################################

#mysql自动安装脚本,其中变量/mysql_v_dir/和/port/可根据实际需要修改    #

#执行脚本命令:sh mysql_install.sh >mysql_install.log                  #

########################################################################

 

####0.定义mysql目录####

mk_mysqldir=/tmp/setup                ##mysql安装包所在目录

mysql_v_dir=mysql_5611                ##mysql version directry

mysql_dir=/home/mysql/$mysql_v_dir    ##the path where mysql install

port=5611                             ##端口号

####1.创建mysql用户和组####

#user=`cat /etc/passwd |grep mysql`

#if [ -z $user ]

#then

#groupadd mysql

#useradd mysql -d /home/mysql -g mysql

#else

#userdel mysql

#groupdel mysql

#groupadd mysql

#useradd mysql -d /home/mysql -g mysql

#fi

cd /home/mysql

mkdir $mysql_v_dir

cd $mysql_dir

mkdir data log tmp etc

#chown mysql:mysql data log tmp etc

 

####2.安装mysql####

cd $mk_mysqldir

tar -xzf mysql-5.6.16.tar.gz

cd mysql-5.6.16

##cmake install##

cmake  \

-DCMAKE_INSTALL_PREFIX=${mysql_dir}  \

-DINSTALL_MYSQLDATADIR=${mysql_dir}/data  \

-DMYSQL_DATADIR=${mysql_dir}/data \

-DSYSCONFDIR=${mysql_dir}/etc    \

-DWITH_INNOBASE_STORAGE_ENGINE=1  \

-DDEFAULT_CHARSET=utf8   \

-DDEFAULT_COLLATION=utf8_general_ci  \

-DMYSQL_TCP_PORT=5535  \

-DMYSQL_UNIX_ADDR=${mysql_dir}/tmp/mysql.sock  \

-DWITH_EXTRA_CHARSETS=all

 

make ; make install

 

####3.创建并修改配置文件#####

cat <<EOF >$mysql_dir/etc/my.cnf

[client]

port            = $port

socket          = $mysql_dir/tmp/mysql.sock

 

[mysqld]

 

 

port                = $port

basedir         = $mysql_dir/

socket              = $mysql_dir/tmp/mysql.sock

pid-file        = $mysql_dir/data/mysql.pid

datadir         = $mysql_dir/data/

 

 

tmpdir              = $mysql_dir/tmp/

slave-load-tmpdir   = $mysql_dir/tmp/

# skip lever

skip-name-resolve

skip-symbolic-links

skip-external-locking

skip-slave-start

 

#thread level

 

 

table_open_cache = 2048

 

#############connect############

back_log                 = 50

max_connections          = 1000

max_connect_errors       = 10000

#open_files_limit         = 10240

 

##############timeout###########

connect-timeout          = 10

wait-timeout             = 800

interactive-timeout      = 800

slave-net-timeout        = 60

net_read_timeout         = 30

net_write_timeout        = 60

net_retry_count          = 10

net_buffer_length        = 16384

max_allowed_packet       = 64M

 

################# cache #############

table_open_cache              = 2048

thread_stack             = 192K

thread_cache_size        = 100

thread_concurrency       = 16

 

# qcache settings

query_cache_size         = 20m

query_cache_limit        = 2M

query_cache_min_res_unit = 2K

 

# default settings

# time zone

default-time-zone        = system

character-set-server     = utf8

default-storage-engine   = InnoDB

 

# tmp & heap

tmp_table_size           = 512M

max_heap_table_size      = 512M

 

log-bin                  = mysql-bin

log-bin-index            = mysql-bin.index

relay-log                = relay-log

relay_log_index          = relay-log.index

 

# warning & error log

log-warnings             = 1

log-error       = $mysql_dir/log/mysql.err

 

log-output               = FILE

 

# slow query log

slow_query_log           = 1

long-query-time          = 1

slow_query_log_file      = $mysql_dir/log/slow.log

#log-queries-not-using-indexes

#log-slow-slave-statements

 

general_log              = 1

general_log_file         = $mysql_dir/log/mysql.log

max_binlog_size          = 1G

max_relay_log_size       = 1G

 

# if use auto-ex, set to 0

relay-log-purge          = 1

 

# max binlog keeps days

expire_logs_days         = 7

 

binlog_cache_size        = 1M

 

# replication

#replicate-wild-ignore-table     = mysql.%

#replicate-wild-ignore-table     = test.%

# slave_skip_errors=all

 

key_buffer_size                 = 30M

sort_buffer_size                = 2M

read_buffer_size                = 2M

join_buffer_size                = 8M

read_rnd_buffer_size            = 8M

bulk_insert_buffer_size         = 64M

myisam_sort_buffer_size         = 64M

myisam_max_sort_file_size       = 10G

myisam_repair_threads           = 1

myisam_recover

 

group_concat_max_len            = 64K

 

transaction_isolation           = REPEATABLE-READ

 

innodb_file_per_table

#############mysql5.5new################

innodb_file_format = Barracuda

########################################

 

innodb_additional_mem_pool_size = 10M

innodb_buffer_pool_size         = 200M

innodb_data_home_dir            = $mysql_dir/data/

innodb_data_file_path           = ibdata1:100M:autoextend

 

################mysql5.5new############

innodb_read_io_threads          = 8

innodb_write_io_threads         = 8

innodb_purge_threads            = 1

########################################

 

innodb_thread_concurrency       = 16

innodb_flush_log_at_trx_commit  = 1

 

innodb_log_buffer_size          = 16M

innodb_log_file_size            = 50M

innodb_log_files_in_group       = 2

innodb_log_group_home_dir       = $mysql_dir/data/

 

innodb_max_dirty_pages_pct      = 90

innodb_lock_wait_timeout        = 50

#innodb_flush_method            = O_DSYNC

 

 

################mysql5.6 new#####################

innodb_buffer_pool_instances    = 16

innodb_change_buffering         = all

innodb_adaptive_flushing        = 1

innodb_io_capacity              = 2000

innodb_old_blocks_time          = 1000

innodb_stats_on_metadata        = 0

#################################################

 

old-passwords                   = 0

 

[mysqldump]

quick

max_allowed_packet              = 64M

 

[mysql]

no-auto-rehash

default-character-set           = utf8

connect-timeout                 = 3

 

[myisamchk]

key_buffer_size = 256M

sort_buffer_size = 256M

read_buffer = 2M

write_buffer = 2M

 

[mysqlhotcopy]

interactive-timeout

EOF

 

####4.初始化数据库并启动####

cd $mysql_dir/scripts

./mysql_install_db --basedir=$mysql_dir --datadir=$mysql_dir/data --user=root

cd $mysql_dir/bin

./mysqld_safe --defaults-file=$mysql_dir/etc/my.cnf --user=root &

####5.添加mysql命令到环境变量中####

echo "export PATH=$mysql_dir/bin:$PATH" >>/root/.bash_profile

source /root/.bash_profile


本文出自 “数据CHEN” 博客,请务必保留此出处http://jianhuchenmou.blog.51cto.com/7449945/1887683

mysql自动安装脚本