现在的位置: 首页 > 综合 > 正文

MySQL-5.5.25 centos 一键安装脚本 auto install

2014年01月05日 ⁄ 综合 ⁄ 共 5203字 ⁄ 字号 评论关闭

原文链接:http://blog.csdn.net/ylqmf/article/details/8064356

工作中经常要要在不同的机器上安装mysql,特意写了个一键安装脚本。

安装包在这里http://kuai.xunlei.com/d/VWKMOOFSUWGB,直接解压,运行install.sh 就可以了。安装目录和my.com部分要根据自己的情况选择使用。

#!/bin/sh
#mysql-5.5.25 auto install shell
#yuanliqiang@b2c.xiaomi.com
#from http://blog.csdn.net/ylqmf/article/details/8064356
serverid=135
objsocket="3306"
curdir=$(cd "$(dirname "$0")"; pwd)
basedir="/opt/soft/mysql"
logdir="/logs/mysql/log${objsocket}"
datadir="/data/mysql/data${objsocket}"
mycnf="/etc/my${objsocket}.cnf"


yum -y install gcc gcc-c++ ncurses-devel cmake bison make numactl libaio libaio-devel perl perl-DBD-MySQL perl-DBI libtool lsof


/usr/sbin/groupadd -g 1001 mysql
/usr/sbin/useradd -g mysql mysql -u 1001 -s /sbin/nologin


cat >> /etc/sysctl.conf << EOF
fs.aio-max-nr = 1048576
vm.swappiness = 0
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
EOF
/sbin/sysctl -p


mkdir -P ${basedir}
mkdir -p ${logdir}
mkdir -p ${datadir}
rm -rf ${mycnf}


tar -zxf libunwind-1.0.1.tar.gz
tar -zxf gperftools-2.0.tar.gz
tar -zxf mysql-5.5.25a.tar.gz


source /etc/profile
cd libunwind-1.0.1


CXX=gcc \
CHOST="x86_64-pc-linux-gnu" \
CFLAGS="-O3 " \
CXXFLAGS="${CFLAGS}" \
./configure && make -j 4 && make install


cp ./src/.libs/libunwind.so.8 /usr/lib64/
echo “/usr/local/lib” > /etc/ld.so.conf.d/usr_local_lib.conf
/sbin/ldconfig


cd ../gperftools-2.0


CHOST="x86_64-pc-linux-gnu" \
CFLAGS="-O3 " \
CXXFLAGS="${CFLAGS}" \
./configure && make -j 4 && make install


cd ../mysql-5.5.25a


HOST="x86_64-pc-linux-gnu" \
CFLAGS="-O3" \
CXXFLAGS="${CFLAGS}" \
cmake -DCMAKE_INSTALL_PREFIX=${basedir} \
-DMYSQL_DATADIR=$datadir \
-DMYSQL_UNIX_ADDR=/tmp/mysql${objsocket}.sock \
-DMYSQL_TCP_PORT=${objsocket} \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_EMBEDDED_SERVER=0 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_USER=mysql \
-DWITH_DEBUG=0 \
-DWITH_SSL=yes


make -j 4
make install


echo 'export PATH=$PATH:'${basedir}'/bin' >> /etc/profile


echo "[client]:
port                            = 3306
socket                          = /tmp/mysql${objsocket}.sock
default-character-set           = utf8


[mysql]
default-character-set           = utf8


[mysqld]
character-set-server            = utf8
tmpdir                          = /tmp
port                            = 3306
socket                          = /tmp/mysql${objsocket}.sock
pid_file                        = ${logdir}/mysql${objsocket}.pid


max_connect_errors              = 999999
max_connections                 = 2048
max_user_connections            = 1024
back_log                        = 512
thread_cache_size               = 300


skip-external-locking
skip-name-resolve
safe-user-create
log_bin_trust_function_creators = 1
interactive_timeout             = 60
wait_timeout                    = 60


open_files_limit                = 65535
key_buffer_size                 = 16K
max_allowed_packet              = 16M
table_definition_cache          = 1024
table_open_cache                = 1024
max_length_for_sort_data        = 8M
max_tmp_tables                  = 1024
max_heap_table_size             = 256M
tmp_table_size                  = 256M


query_cache_size                = 32M
query_cache_limit               = 2M


#session
join_buffer_size                = 16M
max_length_for_sort_data        = 8M
sort_buffer_size                = 8M
read_buffer_size                = 8M
read_rnd_buffer_size            = 8M
net_buffer_length               = 1M
thread_stack                    = 1M


innodb_support_xa               = 0
innodb_stats_on_metadata        = 0


innodb_file_per_table
memlock
default-storage-engine          = innodb
innodb_buffer_pool_size         = 2G
innodb_additional_mem_pool_size = 512M
innodb_change_buffering         = all
innodb_data_file_path           = ibdata1:1024M:autoextend
innodb_concurrency_tickets      = 1024


innodb_log_group_home_dir       = ${logdir}
innodb_max_dirty_pages_pct      = 75
innodb_flush_method             = O_DIRECT
innodb_log_file_size            = 512M
innodb_log_files_in_group       = 3


innodb_use_sys_malloc           = 1
innodb_use_native_aio           = 1
innodb_purge_threads            = 1
innodb_adaptive_flushing        = 1
innodb_io_capacity              = 2000
innodb_thread_concurrency       = 0
innodb_read_io_threads          = 8
innodb_write_io_threads         = 8


innodb_lock_wait_timeout        = 60
sync_binlog                     = 0
innodb_sync_spin_loops          = 0
innodb_flush_log_at_trx_commit  = 1


server-id                       = ${serverid}
#log-slave-updates
#log-bin                        = ${logdir}/mysql-bin
#relay-log                      = ${logdir}/mysql-relay-bin
#binlog_format                  = mixed
#max_binlog_cache_size          = 2G
#expire_logs_days               = 7
#max_binlog_size                = 500M
#skip_slave_start


general-log                     = 1
general_log_file                = ${logdir}/general.log


slow-query-log                  = 1
slow_query_log_file             = ${logdir}/slow_query.log
long_query_time         = 2
log-queries-not-using-indexes   = 1


log_error                       = ${logdir}/log_error.err


[mysqldump]
quick
max_allowed_packet              = 16M


[mysqladmin]
#socket                         = /tmp/mysql${objsocket}.sock


[mysql]
no-auto-rehash


[myisamchk]
key_buffer_size                 = 8M
sort_buffer_size                = 8M


[mysqlhotcopy]
interactive-timeout
"> ${mycnf}


cd ${basedir}
${basedir}/scripts/mysql_install_db  --defaults-file=${mycnf}  --basedir=${basedir}  --datadir=${datadir}  --user=mysql


sed '2iexport LD_PRELOAD="/usr/local/lib/libtcmalloc.so"' -i ${basedir}/bin/mysqld_safe


chown mysql:mysql ${basedir} -R
chown mysql:mysql ${datadir} -R
chown mysql:mysql ${logdir} -R


echo "nice -n -20 ${basedir}/bin/mysqld_safe --defaults-file=${mycnf} --datadir=${datadir} --user=mysql &"
source /etc/profile
echo "lsof -n | grep tcmalloc"

原文链接:http://blog.csdn.net/ylqmf/article/details/8064356

【上篇】
【下篇】

抱歉!评论已关闭.