centos7 mysql一键编译安装脚本

抽空重新写了下,基于centos7下,定制编译mysql5.7。优化项已经集成到里面了,可以按需调大参数

#!/bin/sh
#author lwt
#time 2020
softpath='/'
#mysql安装文件下载路径
mysqlbin_path='https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24.tar.gz'
#boost安装文件下载路径
boost_urlpath='http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz'
#数据下载位置
soft_path='./tmp'
#mysql安装位置
mysql_path='/usr/lib/mysql'
#mysql输出存储位置
mysql_datadir='/home/mysql/datadir'
#boost位置
boost_path='/usr/local/boost'
mkdir -p $soft_path
#优化my.cnf文件
function opt_mysql() {
	cat > /etc/my.cnf << LWT
[clent]
port=3306
socket=$mysql_path/tmp/mysql.sock
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
skip-external-locking
skip-name-resolve
explicit_defaults_for_timestamp=1
user=mysql
port=3306
basedir=$mysql_path
datadir=$mysql_datadir
tmpdir=/home/mysql/temp
socket=$mysql_path/tmp/mysql.sock
log-error=$mysql_path/logs/mysql_error.log
pid-file=$mysql_path/pids/mysql.pid
open_files_limit=10240
back_log=600
max_connections=500
max_connect_errors=6000
wait_timeout=605800
#open_tables=600
#table_cache = 650
#opened_tables = 630
max_allowed_packet=32M
sort_buffer_size=4M
join_buffer_size=4M
thread_cache_size=300
query_cache_type=1
query_cache_size=256M
query_cache_limit=2M
query_cache_min_res_unit=16k
tmp_table_size=256M
max_heap_table_size=256M
key_buffer_size=256M
read_buffer_size=1M
read_rnd_buffer_size=16M
bulk_insert_buffer_size=64M
lower_case_table_names=1
default-storage-engine=INNODB
innodb_buffer_pool_size=2G
innodb_log_buffer_size=32M
innodb_log_file_size=128M
innodb_flush_method=O_DIRECT
long_query_time=2
slow-query-log=on
slow-query-log-file=$mysql_path/logs/mysql-slow.log
[mysqldump]
quick
max_allowed_packet=32M
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
LWT
	
}
#公共环节
function install() {
	echo "\033[40m开始添加mysql用户\033[0m"
	useradd -s /sbin/nologin -M mysql
	tar zxvf boost_1_59_0.tar.gz
	mv boost_1_59_0  $boost_path
	#解压mysql 
	tar zxvf mysql-5.7.24.tar.gz && cd mysql-5.7.24
	cmake -DCMAKE_INSTALL_PREFIX=$mysql_path \
	-DWITH_BOOST=$boost_path \
	-DMYSQL_UNIX_ADDR=$mysql_path/tmp/mysql.sock \
	-DMYSQL_DATADIR=$mysql_datadir \
	-DDEFAULT_CHARSET=utf8mb4 \
	-DDEFAULT_COLLATION=utf8mb4_general_ci \
	-DWITH_EXTRA_CHARSETS=all \
	-DWITH_MYISAM_STORAGE_ENGINE=1 \
	-DWITH_INNOBASE_STORAGE_ENGINE=1 \
	-DWITH_MEMORY_STORAGE_ENGINE=1 \
	-DWITH_READLINE=1 \
	-DWITH_INNODB_MEMCACHED=1 \
	-DWITH_DEBUG=OFF \
	-DWITH_ZLIB=bundled \
	-DENABLED_LOCAL_INFILE=1 \
	-DENABLED_PROFILING=ON \
	-DMYSQL_MAINTAINER_MODE=OFF \
	-DMYSQL_TCP_PORT=3306
	make   && make install 
	#添加环境变量
	echo "export PATH=${mysql_path}/bin:${PATH}">>/etc/profile
	echo "export PATH=${mysql_path}/bin:${mysql_path}/lib:${PATH}" >>/etc/profile
	#刷新
	#systemctl daemon-reload
	source /etc/profile
	mkdir -p $mysql_path/{tmp,logs,pids}
	mkdir -p $mysql_datadir
	chown -R mysql:mysql $mysql_path
	chown mysql.mysql $mysql_path/tmp
	chown mysql.mysql $mysql_path/logs
	chown mysql.mysql $mysql_path/pids
	chown mysql.mysql $mysql_datadir
	opt_mysql
	touch $mysql_path/logs/mysqld.log
	touch $mysql_path/pids/mysqld.pid
	chown mysql.mysql -R $mysql_path/logs/
	chown mysql.mysql -R $mysql_path/pids/
	cd $mysql_path
	cp support-files/mysql.server /etc/init.d/mysqld
#	systemctl daemon-reload
	chmod a+x /etc/init.d/mysqld
	chkconfig --add mysqld
	chkconfig mysqld on
	mysqld --initialize-insecure --user=mysql --basedir=$mysql_path --datadir=$mysql_datadir
	

}
#centos6安装
function install_on_centos6() {
	install
	service mysqld restart
	
}
#centos7安装
function install_on_centos7() {
	install	
	systemctl start mysqld.service
}

#main函数
function main() {
	#预先下载包
	cd $soft_path
	#下载wget
#	yum install  -y wget 
#	#下载数据
#	wget $mysqlbin_path
#	wget $boost_urlpath
	if [ $?  -ne 0 ];then	
		echo "请检查网络"
		exit
	fi
	#检测操作系统版本
	ver=`cat /etc/redhat-release|sed -r 's/.* ([0-9]+)\..*/\1/'`
	if [ $ver -eq 7 ];then
		echo -e "\033[40m检测到操作系统为:centos7\033[0m"
		echo "开始安装依赖"
		`yum install -y  gcc gcc-c++ pcre pcre-devel openssl openssl-devel zlib zlib-devel cmake ncurses ncurses-devel bison bison-devel perl perl-devel autoconf`
		install_on_centos7
	elif [$ver -eq 6 ];then
		echo -e "\033[40m检测到操作系统为:centos6\033[0m"
		echo "开始安装依赖"
		`yum install -y gcc gcc-c++ pcre pcre-devel openssl openssl-devel zlib zlib-devel cmake ncurses ncurses-devel bison bison-devel`
		install_on_centos6
	else
		echo -e  "\033[34m此操作系统不受支持\033[0m"
	fi

}
main

安装完成后默认密码是空,修改密码如下

mysql -u root -p #第一次登陆不需要密码,回车即可
set password for root@localhost = password('root'); #修改密码
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值