复制代码 代码如下:
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
clear;
SysName=""
SysBit=""
CpuNum=""
RamTotal=""
RamSwap=""
FileMax=""
MysqlVersion="Percona-Server-5.6.15-rel63.0"
MysqlLine="http://www.percona.com/downloads/Percona-Server-5.6/LATEST/source"
MysqlPath="/usr/local/mysql"
MysqlDataPath="$MysqlPath/data"
MysqlLogPath="/var/log/mysql"
MysqlConfigPath="$MysqlPath/conf"
MysqlPass="test123"
SYSTEM_CHECK(){
[[ $(id -u) != '0' ]] && echo '[Error] Please use root to install PUPPET.' && exit;
egrep -i "centos" /etc/issue && SysName='centos';
egrep -i "ubuntu" /etc/issue && SysName='ubuntu';
[[ "$SysName" == '' ]] && echo '[Error] Your system is not supported this script' && exit;
SysBit='32' && [ `getconf WORD_BIT` == '32' ] && [ `getconf LONG_BIT` == '64' ] && SysBit='64';
CpuNum=`cat /proc/cpuinfo |grep 'processor'|wc -l`;
RamTotal=`free -m | grep 'Mem' | awk '{print $2}'`;
RamSwap=`free -m | grep 'Swap' | awk '{print $2}'`;
FileMax=`cat /proc/sys/fs/file-max`
}
INSTALL_BASE_PACKAGES()
{
SYSTEM_CHECK
if [ "$SysName" == 'centos' ]; then
echo '[yum-fastestmirror Installing] ************************************************** ';
yum -y install yum-fastestmirror;
cp /etc/yum.conf /etc/yum.conf.lnmp
sed -i 's:exclude=.*:exclude=:g' /etc/yum.conf
for packages in gcc gcc-c++ openssl-devel ncurses-devel wget crontabs iptables bison cmake automake make readline-devel logrotate openssl; do
echo "[${packages} Installing] ************************************************** ";
yum -y install $packages;
done;
mv -f /etc/yum.conf.lnmp /etc/yum.conf;
else
apt-get remove -y mysql-client mysql-server mysql-common;
apt-get update;
for packages in gcc g++ cmake make ntp logrotate cron bison libncurses5-dev libncurses5 libssl-dev openssl curl openssl; do
echo "[${packages} Installing] ************************************************** ";
apt-get install -y $packages --force-yes;apt-get -fy install;apt-get -y autoremove;
done;
fi;
}
INSTALL_MYSQL(){
INSTALL_BASE_PACKAGES
cd /tmp/
echo "[${MysqlVersion} Installing] ************************************************** ";
[ ! -f ${MysqlVersion}.tar.gz ] && wget -c ${MysqlLine}/${MysqlVersion}.tar.gz
tar -zxf /tmp/$MysqlVersion.tar.gz;
cd /tmp/$MysqlVersion;
groupadd mysql;
useradd -s /sbin/nologin -g mysql mysql;
cmake -DCMAKE_INSTALL_PREFIX=$MysqlPath -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=complex -DWITH_READLINE=ON -DENABLED_LOCAL_INFILE=ON -DWITH_INNODB_MEMCACHED=ON -DWITH_UNIT_TESTS=OFF;
make -j $Cpunum;
make install;
for path in $MysqlLogPath $MysqlPath $MysqlConfigPath/conf.d $MysqlDataPath;do
[ ! -d $path ] && mkdir -p $path
chmod 740 $path;
chown -R mysql:mysql $path;
done
# EOF **********************************
cat > $MysqlConfigPath/my.cnf<<EOF;
[mysqld]
user = mysql
server-id = 1
pid-file = /var/run/mysqld.pid
socket = /var/run/mysqld.sock
port = 3306
basedir = $MysqlPath
datadir = $MysqlDataPath
bind-address = 0.0.0.0
skip-name-resolve
skip-external-locking
thread_concurrency = `expr $CpuNum \* 2`
max_connections = `expr $FileMax \* $CpuNum \* 2 / $RamTotal`
max_connect_errors = 30
table_open_cache = `expr $RamTotal + $RamSwap`
max_allowed_packet = `expr $RamTotal \* 2 / 1000`M
binlog_cache_size = 4M
max_heap_table_size = `expr $RamTotal / 100`M
sort_buffer_size = `expr $RamTotal \* 2 / 1000`M
join_buffer_size = `expr $RamTotal \* 2 / 1000`M
query_cache_size = `expr $RamTotal / 100`M
thread_cache_size = 30
thread_concurrency = `expr $CpuNum \* 4`
connect_timeout = 1200
wait_timeout = 1200
general_log = 1
general_log_file = $MysqlLogPath/mysql.log
log_error = $MysqlLogPath/mysql-err.log
slow_query_log = 1
slow_query_log_file = $MysqlLogPath/mysql-slow.log
long_query_time = 3
log_bin = $MysqlLogPath/mysql-bin
log_bin_index = $MysqlLogPath/mysql-bin.index
expire_logs_days = 7
max_binlog_size = `expr $(df -m $MysqlLogPath |awk 'NR==2{printf "%s\n",$4}') / 10000`M
default_storage_engine = InnoDB
innodb_buffer_pool_size = `expr $RamTotal / 100`M
innodb_log_buffer_size = 8M
innodb_file_per_table = 1
innodb_open_files = `expr $FileMax \* $CpuNum / $RamTotal`
innodb_io_capacity = `expr $FileMax \* $CpuNum / $RamTotal`
innodb_flush_method = O_DIRECT
!includedir $$MysqlConfigPath/conf.d
[mysqld_safe]
open_files_limit = `expr $FileMax / $CpuNum / 100`
[isamchk]
key_buffer = 16M
[mysqldump]
quick
quote-names
max_allowed_packet = 16M
EOF
# **************************************
$MysqlPath/scripts/mysql_install_db --user=mysql --defaults-file=$MysqlConfigPath/my.cnf --basedir=$MysqlPath --datadir=$MysqlDataPath;
# EOF **********************************
cat > /etc/ld.so.conf.d/mysql.conf<<EOF
/usr/local/mysql/lib/mysql
/usr/local/lib
EOF
# **************************************
ldconfig;
if [ "$SysBit" == '64' ] ; then
ln -s $MysqlPath/lib/mysql /usr/lib64/mysql;
else
ln -s $MysqlPath/lib/mysql /usr/lib/mysql;
fi;
cp $MysqlPath/support-files/mysql.server /etc/init.d/mysqld;
chmod 775 /etc/init.d/mysqld;
/etc/init.d/mysqld start;
ln -s $MysqlPath/bin/mysql /usr/bin/mysql;
ln -s $MysqlPath/bin/mysqladmin /usr/bin/mysqladmin;
$MysqlPath/bin/mysqladmin password $MysqlPass;
rm -rf $MysqlDataPath/test;
# EOF **********************************
mysql -hlocalhost -uroot -p$MysqlPass <<EOF
USE mysql;
DELETE FROM user WHERE user='';
UPDATE user set password=password('$MysqlPass') WHERE user='root';
DELETE FROM user WHERE not (user='root');
DROP USER ''@'%';
FLUSH PRIVILEGES;
EOF
# **************************************
echo "[OK] ${MysqlVersion} install completed.";
}
INSTALL_MYSQL
mysql源码
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
更新日志
- 刘欢《雨中的树(新歌加精选)2CD》德国HD24K金碟[WAV+CUE]
- 郑源 《世间情歌》6N纯银SQCD[WAV+CUE][1G]
- 群星《粤潮2HQII》头版限量编号[低速原抓WAV+CUE][991M]
- 群星《2023好听新歌21》十倍音质 U盘音乐[WAV分轨][1G]
- 《热血传奇》双11感恩回馈 超值狂欢30天
- 原神5.2版本活动汇总 5.2版本活动有哪些
- 张敬轩.2010-NO.ELEVEN【环球】【WAV+CUE】
- 黄丽玲.2006-失恋无罪【艾回】【WAV+CUE】
- 阿达娃.2024-Laluna【W8VES】【FLAC分轨】
- 宝可梦大集结段位等级划分表大全 大集结段位一览
- 龙腾世纪影障守护者工坊与装备如何升级 工坊与装备升级说明
- 龙腾世纪影障守护者全成就攻略分享 龙腾世纪4全成就列表一览
- 《剑星》更新四套全新战衣!
- 卡普空老将伊津野英昭宣布入职腾讯光子 开发3A动作
- 38岁梅根·福克斯官宣怀孕:将迎来第四个孩子