66 lines
2.5 KiB
Bash
66 lines
2.5 KiB
Bash
#!/bin/sh
|
|
|
|
# 路径配置
|
|
PWD=`pwd`
|
|
BIN_PATH=$PWD/bin
|
|
|
|
# 引入
|
|
source $BIN_PATH'/func.sh'
|
|
source $BIN_PATH'/extend.sh'
|
|
|
|
install_mysql
|
|
|
|
# 获取配置
|
|
thread=`get_config core thread`
|
|
package=`get_config db package`
|
|
|
|
# 安装文件夹
|
|
file_name=`get_path_name $package`
|
|
path_dir='/usr/local/'`get_file_dir $file_name`
|
|
|
|
if [ -d $path_dir ];then
|
|
exit 0
|
|
fi
|
|
|
|
|
|
# 安装mysql
|
|
# 下载地址
|
|
package=`exists_download $package`
|
|
# 解压文件
|
|
decompression $package
|
|
file_dir=`get_file_dir $package`
|
|
cd $file_dir
|
|
|
|
cmake -DCMAKE_INSTALL_PREFIX=$path_dir -DMYSQL_DATADIR=$path_dir'/data' -DSYSCONFIGDIR=$path_dir'/etc' -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_USER=mysql
|
|
|
|
make -j$thread && make install
|
|
error=$?
|
|
if [ $error == 0 ];then
|
|
cp $path_dir/support-files/my-huge.cnf /etc/my.cnf
|
|
# 去掉innodb注释
|
|
update_file '/etc/my.cnf' '#innodb_data_home_dir' 'innodb_data_home_dir = '$path_dir'/data'
|
|
update_file '/etc/my.cnf' '#innodb_data_file_path' 'innodb_data_file_path = ibdata1:2000M;ibdata2:10M:autoextend'
|
|
update_file '/etc/my.cnf' '#innodb_log_group_home_dir' 'innodb_log_group_home_dir = '$path_dir'/data'
|
|
update_file '/etc/my.cnf' '#innodb_buffer_pool_size' 'innodb_buffer_pool_size = 384M'
|
|
update_file '/etc/my.cnf' '#innodb_additional_mem_pool_size' 'innodb_additional_mem_pool_size = 20M'
|
|
update_file '/etc/my.cnf' '#innodb_log_file_size' 'innodb_log_file_size = 100M'
|
|
update_file '/etc/my.cnf' '#innodb_log_buffer_size' 'innodb_log_buffer_size = 8M'
|
|
update_file '/etc/my.cnf' '#innodb_flush_log_at_trx_commit' 'innodb_flush_log_at_trx_commit = 1'
|
|
update_file '/etc/my.cnf' '#innodb_lock_wait_timeout' 'innodb_lock_wait_timeout = 50'
|
|
if [ ! -f '/etc/init.d/mysqld' ];then
|
|
cp $path_dir'/support-files/mysql.server' '/etc/init.d/mysqld'
|
|
fi
|
|
if [ `cat /etc/group|grep 'mysql:'|wc -l` == 0 ];then
|
|
groupadd mysql
|
|
fi
|
|
if [ `cat /etc/passwd|grep 'mysql:'|wc -l` == 0 ];then
|
|
useradd -s /sbin/nologin -g mysql -M mysql
|
|
fi
|
|
chown -R mysql:mysql $path_dir
|
|
$path_dir/scripts/mysql_install_db --user=mysql --basedir=$path_dir --datadir=$path_dir'/data' >> $path_dir'/install.log' 2>&1 &
|
|
|
|
append_file '/etc/profile' 'export PATH='$path_dir'/bin:$PATH'
|
|
source '/etc/profile'
|
|
else
|
|
exit $error
|
|
fi |