Skip to content

Commit 3822e5e

Browse files
committed
支持在同一台服务器安装多个mysql实例
1 parent 1396c64 commit 3822e5e

4 files changed

Lines changed: 42 additions & 13 deletions

File tree

function/mysql.sh

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,19 @@ if [ "$mysql" != "do_not_install" ];then
4747
mysql_data_location=${mysql_data_location:=$mysql_location/data}
4848
mysql_data_location=`filter_location "$mysql_data_location"`
4949
echo "$mysql install location: $mysql_data_location"
50+
51+
#mysql端口设置
52+
while true;do
53+
read -p "mysql port number(default:3306,leave blank for default): " mysql_port_number
54+
mysql_port_number=${mysql_port_number:=3306}
55+
if verify_port "$mysql_port_number";then
56+
echo "mysql port number: $mysql_port_number"
57+
break
58+
else
59+
echo "port number $mysql_port_number is invalid,please reinput."
60+
fi
61+
done
62+
5063
#mysql密码设置
5164
read -p "mysql server root password (default:root,leave blank for default): " mysql_root_pass
5265
mysql_root_pass=${mysql_root_pass:=root}
@@ -59,21 +72,21 @@ if [ "$mysql" != "do_not_install" ];then
5972
else
6073
other_option="--with-named-curses-libs=${depends_prefix}/${ncurses_filename2}/lib/libncurses.a"
6174
fi
62-
mysql_configure_args="--prefix=${mysql_location} --sysconfdir=${mysql_location}/etc --with-unix-socket-path=/tmp/mysql.sock --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=complex --with-plugins=max --with-mysqld-ldflags=-all-static --enable-assembler $other_option"
75+
mysql_configure_args="--prefix=${mysql_location} --sysconfdir=${mysql_location}/etc --with-unix-socket-path=${mysql_data_location}/mysql.sock --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=complex --with-plugins=max --with-mysqld-ldflags=-all-static --enable-assembler $other_option"
6376
elif [ "$mysql" == "${mysql5_5_filename}" ] || [ "$mysql" == "libmysqlclient18" ];then
6477
if check_sys packageSupport;then
6578
other_option=""
6679
else
6780
other_option="-DCURSES_LIBRARY=${depends_prefix}/${ncurses_filename}/lib/libncurses.a -DCURSES_INCLUDE_PATH=${depends_prefix}/${ncurses_filename}/include/"
6881
fi
69-
mysql_configure_args="-DCMAKE_INSTALL_PREFIX=${mysql_location} -DSYSCONFDIR=${mysql_location}/etc -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=complex -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 $other_option"
82+
mysql_configure_args="-DCMAKE_INSTALL_PREFIX=${mysql_location} -DSYSCONFDIR=${mysql_location}/etc -DMYSQL_UNIX_ADDR=${mysql_data_location}/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=complex -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 $other_option"
7083
elif [ "$mysql" == "${mysql5_6_filename}" ];then
7184
if check_sys packageSupport;then
7285
other_option=""
7386
else
7487
other_option="-DCURSES_LIBRARY=${depends_prefix}/${ncurses_filename}/lib/libncurses.a -DCURSES_INCLUDE_PATH=${depends_prefix}/${ncurses_filename}/include/"
7588
fi
76-
mysql_configure_args="-DCMAKE_INSTALL_PREFIX=${mysql_location} -DSYSCONFDIR=${mysql_location}/etc -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=complex -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 $other_option"
89+
mysql_configure_args="-DCMAKE_INSTALL_PREFIX=${mysql_location} -DSYSCONFDIR=${mysql_location}/etc -DMYSQL_UNIX_ADDR=${mysql_data_location}/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=complex -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 $other_option"
7790
fi
7891

7992
#提示是否更改编译参数
@@ -239,7 +252,7 @@ else
239252
sysMemory=32G
240253
fi
241254

242-
make_mysql_my_cnf "$sysMemory" "$storage" "${mysql_data_location}" "true" "false" "${mysql_location}/etc/my.cnf"
255+
make_mysql_my_cnf "$sysMemory" "$storage" "${mysql_data_location}" "true" "false" "${mysql_location}/etc/my.cnf" "${mysql_port_number}"
243256

244257
if [ $version == "5.1" ];then
245258
rm -f /etc/init.d/mysqld

function/other.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ mysql="$mysql"
149149
mysql_location="$mysql_location"
150150
mysql_data_location="$mysql_data_location"
151151
mysql_root_pass="$mysql_root_pass"
152+
mysql_port_number="$mysql_port_number"
152153
mysql_configure_args='${mysql_configure_args}'
153154
php="$php"
154155
php_location="$php_location"

function/php.sh

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -294,9 +294,10 @@ if [ "$php_mode" == "with_fastcgi" ];then
294294
fi
295295

296296
#设置php连接mysql mysql.sock的路径
297-
sed -i "s#mysql.default_socket.*#mysql.default_socket = /tmp/mysql.sock#" $php_location/etc/php.ini
298-
sed -i "s#mysqli.default_socket.*#mysqli.default_socket = /tmp/mysql.sock#" $php_location/etc/php.ini
299-
sed -i "s#pdo_mysql.default_socket.*#pdo_mysql.default_socket = /tmp/mysql.sock#" $php_location/etc/php.ini
297+
[ -z ${mysql_data_location} ] && sock_location=/usr/local/mysql/data/mysql.sock || sock_location=${mysql_data_location}/mysql.sock
298+
sed -i "s#mysql.default_socket.*#mysql.default_socket = ${sock_location}#" $php_location/etc/php.ini
299+
sed -i "s#mysqli.default_socket.*#mysqli.default_socket = ${sock_location}#" $php_location/etc/php.ini
300+
sed -i "s#pdo_mysql.default_socket.*#pdo_mysql.default_socket = ${sock_location}#" $php_location/etc/php.ini
300301

301302
#默认开启一些扩展
302303
echo "extension=curl.so" >> ${php_location}/etc/php.ini

function/tools.sh

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ make_mysql_my_cnf(){
4444
local binlog=$4
4545
local replica=$5
4646
local my_cnf_location=$6
47+
local port_number=$7
4748

4849
case $memory in
4950
256M)innodb_log_file_size=32M;innodb_buffer_pool_size=64M;key_buffer_size=64M;open_files_limit=512;table_definition_cache=50;table_open_cache=200;max_connections=50;;
@@ -97,15 +98,16 @@ make_mysql_my_cnf(){
9798
[mysql]
9899
99100
# CLIENT #
100-
port = 3306
101-
socket = /tmp/mysql.sock
101+
port = ${port_number}
102+
socket = ${mysqlDataLocation}/mysql.sock
102103
103104
[mysqld]
104105
105106
# GENERAL #
107+
port = ${port_number}
106108
user = mysql
107109
default-storage-engine = ${storage}
108-
socket = /tmp/mysql.sock
110+
socket = ${mysqlDataLocation}/mysql.sock
109111
pid-file = ${mysqlDataLocation}/mysql.pid
110112
111113
# MyISAM #
@@ -191,13 +193,25 @@ Generate_mysql_my_cnf(){
191193
mysqlDataLocation=${mysqlDataLocation:=/usr/local/mysql/data}
192194
mysqlDataLocation=`filter_location $mysqlDataLocation`
193195

196+
#mysql端口设置
197+
while true;do
198+
read -p "mysql port number(default:3306,leave blank for default): " mysql_port_number
199+
mysql_port_number=${mysql_port_number:=3306}
200+
if verify_port "$mysql_port_number";then
201+
echo "mysql port number: $mysql_port_number"
202+
break
203+
else
204+
echo "port number $mysql_port_number is invalid,please reinput."
205+
fi
206+
done
207+
194208
#是否开启二进制日志
195209
yes_or_no "enable binlog [Y/n]: " "binlog=true;echo 'you select y,enable binlog'" "binlog=false;echo 'you select n,disable binlog.'"
196210

197211
#是否为复制节点
198212
yes_or_no "mysql server will be a replica [N/y]: " "replica=true;echo 'you select y,setup replica config.'" "replica=false;echo 'you select n.'"
199213

200-
make_mysql_my_cnf "$mysqlMemory" "$storage" "$mysqlDataLocation" "$binlog" "$replica" "$cur_dir/my.cnf"
214+
make_mysql_my_cnf "$mysqlMemory" "$storage" "$mysqlDataLocation" "$binlog" "$replica" "$cur_dir/my.cnf" "$mysql_port_number"
201215
echo "you should copy this file to the right location."
202216
exit
203217
}
@@ -1269,11 +1283,11 @@ tcpTrafficOverview(){
12691283
awk 'NR>1{sum[$(NF-4),$(NF)]+=1}END{for (key in sum){split(key,subkey,SUBSEP);print subkey[1],subkey[2],sum[subkey[1],subkey[2]]}}' /tmp/ss | sort -k 3 -nr | head -n 10 | awk '{print "\033[50C"$0}'
12701284
echo
12711285
#统计状态为ESTAB连接数最多的前10个IP
1272-
echo -e "\033[32mtop 10 ip ESTAB state count at port 80: \033[0m"
1286+
echo -e "\033[32mtop 10 ip ESTAB state count: \033[0m"
12731287
cat /tmp/ss | grep ESTAB | awk -F'[: ]+' '{sum[$(NF-2)]+=1}END{for (ip in sum){print ip,sum[ip]}}' | sort -k 2 -nr | head -n 10
12741288
echo
12751289
#统计状态为SYN-RECV连接数最多的前10个IP
1276-
echo -e "\033[32mtop 10 ip SYN-RECV state count at port 80: \033[0m"
1290+
echo -e "\033[32mtop 10 ip SYN-RECV state count: \033[0m"
12771291
cat /tmp/ss | grep -E "$regSS" | grep SYN-RECV | awk -F'[: ]+' '{sum[$(NF-2)]+=1}END{for (ip in sum){print ip,sum[ip]}}' | sort -k 2 -nr | head -n 10
12781292
}
12791293

0 commit comments

Comments
 (0)