php-server/bin/mysql.sh
2019-05-21 17:41:00 +08:00

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