#安装必要的依赖
yum install install make cmake gcc g++ bison libncurses5-dev
#定义下载压缩包 存放路径
soft_path=/data/soft/
if [! -d $soft_path ];then
mkdir -p /data/soft/
fi
main_path=/data/mysql/
install_name=mysql-5.6.19.tar.gz
install_path=/usr/local/mysql/
cd $soft_path
wget http://downloads.mysql.com/archives/get/file/mysql-5.6.19.tar.gz
env_fun() #环境
{
echo "-------检测本机环境,请稍等-------"
username=`cat /etc/passwd|grep mysql|cut -c 1-5`
if [ $username = "mysql" ];then
echo "用户检测:mysql已存在"
return 10
else
echo "用户检测:mysql用户不存在,添加"
groupadd mysql
useradd mysql -g mysql
return 12
fi
}
#判断mysql是否安装(rpm、source)
check_fun()
{
rpm_name=`rpm -aq |grep mysql-server`
if [ ! $rpm_name ];then
echo "开始检测源码包是否安装,请稍等......"
if [ -d $install_path ];then
echo "源码:$install_path目录已存在,退出本次安装."
exit 0
else
echo "本机未安装任何mysql程序,将为您开始安装$install_name.请稍等......"
install_fun
fi
else
echo -n "rpm mysql已安装,是否删除?[yes|no]"
read select
if [ $select = yes ];then
rpm -ev $rpm_name --nodeps
rm -rf /var/log/mysqld.log
check_fun
else
exit 0
fi
fi
}
install_fun() #安装函数
{
cd $soft_path
echo "正在解压,请稍等......"
tar zxvf $install_name
echo "建立相应目录"
echo "mkdir -p /usr/local/mysql/"
mkdir -p /usr/local/mysql/
echo "mkdir -p /usr/local/mysql/data/"
mkdir -p /usr/local/mysql/data/
cd mysql-5.6.19
#./configure --prefix=/usr/local/mysql --without-debug --without-bench --enable-thread-safe-client --enable-assembler --enable-profiling --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static --with-charset=latin1 --with-extra-charset=utf8,gbk --with-innodb --with-mysqld-user=mysql --without-embedded-server --with-server-sufix=community --with-unix-socket-path=/usr/local/mysql/sock/mysql.sock --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-big-tables --with-readline --with-ssl --with-plugins=partition,heap,innobase,myisam,myisammrg,csv
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_TCP_PORT=3306
make -j `cat /proc/cpuinfo | grep 'model name' | wc -l ` && make install
echo "chown -R mysql:mysql /usr/local/mysql/"
chown -R mysql:mysql /usr/local/mysql/
#配置
###################################### create data file #####################################################
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql --pid-file=/usr/local/mysql/mysql.pid
####################################### create my.cnf profile #####################################################
echo "
[mysqld]
datadir=/usr/local/mysql/data
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
skip-name-resolve
max_connections = 1000
max_allowed_packet = 20971520
explicit_defaults_for_timestamp=true
log-bin=/usr/local/mysql/binlog/mysql-bin.log
server-id=1
slave_skip_errors = 1062
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
long_query_time = 2
slow_query_log = on
slow_query_log_file=/usr/local/mysql/data/mysql-slow.log
[mysqld_safe]
log-error=/usr/local/mysql/error_mysqld.log
pid-file=/usr/local/mysql/mysqld.pid
" > /usr/local/mysql/my.cnf
}
main()
{
echo "#***********************************#"
echo "# 欢迎使用mysql安装脚本 #"
echo "# Copyright 2017 by zhangyongchao #"
echo "#***********************************#"
sleep 3
#开始执行,调用检测函数
env_fun
re=$?
if [ re = 10 ];then
check_fun
else
check_fun
fi
############################### start MySQL Server #############################################
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chkconfig mysql on
service mysql start
/usr/local/mysql/bin/mysql -uroot
SET PASSWORD = PASSWORD('123456');
############################### try use MySQL Server #############################################
/usr/local/mysql/bin/mysql -uroot -p123456 -e "show databases;"
}
main
exit 0