温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

mysql源码安装的脚本分享

发布时间:2021-09-16 13:38:59 来源:亿速云 阅读:113 作者:chen 栏目:开发技术

这篇文章主要讲解了“mysql源码安装的脚本分享”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql源码安装的脚本分享”吧!

代码如下:

#!/bin/bashPATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport PATHclear;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  = mysqlserver-id = 1pid-file = /var/run/mysqld.pidsocket  = /var/run/mysqld.sockport  = 3306basedir  = $MysqlPathdatadir  = $MysqlDataPathbind-address = 0.0.0.0skip-name-resolveskip-external-lockingthread_concurrency = `expr $CpuNum \* 2`max_connections = `expr $FileMax \* $CpuNum \* 2 / $RamTotal`max_connect_errors = 30table_open_cache = `expr $RamTotal + $RamSwap`max_allowed_packet = `expr $RamTotal \* 2 / 1000`Mbinlog_cache_size = 4Mmax_heap_table_size = `expr $RamTotal / 100`Msort_buffer_size = `expr $RamTotal \* 2 / 1000`Mjoin_buffer_size = `expr $RamTotal \* 2 / 1000`Mquery_cache_size = `expr $RamTotal / 100`Mthread_cache_size = 30thread_concurrency = `expr $CpuNum \* 4`connect_timeout  = 1200wait_timeout  = 1200general_log = 1general_log_file = $MysqlLogPath/mysql.loglog_error = $MysqlLogPath/mysql-err.logslow_query_log = 1slow_query_log_file = $MysqlLogPath/mysql-slow.loglong_query_time = 3log_bin = $MysqlLogPath/mysql-binlog_bin_index = $MysqlLogPath/mysql-bin.indexexpire_logs_days = 7max_binlog_size = `expr $(df -m $MysqlLogPath |awk 'NR==2{printf "%s\n",$4}') / 10000`Mdefault_storage_engine = InnoDBinnodb_buffer_pool_size = `expr $RamTotal / 100`Minnodb_log_buffer_size = 8Minnodb_file_per_table = 1innodb_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]quickquote-namesmax_allowed_packet = 16MEOF# ************************************** $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/libEOF# ************************************** 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 <<EOFUSE 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源码安装的脚本分享”的内容了,经过本文的学习后,相信大家对mysql源码安装的脚本分享这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI