原文链接: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.xx.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