博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql多实例安装脚本
阅读量:6936 次
发布时间:2019-06-27

本文共 4613 字,大约阅读时间需要 15 分钟。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
#! /bin/bash
# v.mysql-5.6.30-linux-glibc2.5-x86_64.tar.gz
# only install master mysql
# time:2016-08-15
 
# pkg dir
pkg_dir=`
pwd
`
 
# mysql base dir
data_dir=
"/data/mysql_root/mysql"
base_dir=
"/usr/local/mysql"
 
# create MySQL group and user
echo 
"start create mysql group and user" 
>> ${pkg_dir}
/install
.log
 
groupadd mysql
useradd 
-g mysql mysql  -s 
/sbin/nologin
 
echo 
"end mysql group and user" 
>> ${pkg_dir}
/install
.log
 
# mysql datafile path
# install mysqld 
# grant privileges
mkdir 
-p ${data_dir}
/data 
2>
/dev/null
chown 
-R mysql:mysql ${data_dir}
/data
# un_tar.gz and install mysql programmer
echo 
"start un_tar.gz..." 
>> ${pkg_dir}
/install
.log
cd 
${pkg_dir} && 
tar 
-xf mysql-5.6.30-linux-glibc2.5-x86_64.
tar
.gz  -C 
/usr/local 
&& 
cd 
/usr/local 
&& 
mv 
mysql-5.6.30-linux-glibc2.5-x86_64 mysql;
 
echo 
"end install mysql"  
>> ${pkg_dir}
/install
.log
 
echo 
"set mysql my.cnf params" 
>> ${pkg_dir}
/install
.log
 
# stored mysqld multi execute log
mkdir 
-p ${base_dir}
/multi_log 
2>
/dev/null
 
# comm parameter of my.cnf 
cat
<<EOF > ${base_dir}
/my
.cnf
# The mysqld multi instance
[mysqld_multi]
mysqld = ${base_dir}
/bin/mysqld_safe
mysqladmin = ${base_dir}
/bin/mysqladmin
log =${base_dir}
/multi_log/mysqld_multi
.log
 
[mysqldump]
quick
max_allowed_packet = 16M
 
[mysql]
no-auto-rehash
 
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
 
[mysqlhotcopy]
interactive-timeout
 
EOF
 
# other my.cnf parameter part 
pre_install_mysqld(){
cat
<<EOF >> ${base_dir}
/my
.cnf
# The MySQL server
[mysqld${port:2}]
port        = ${port} 
socket      = ${data_dir}
/data
${port}
/mysql
.socket
max-connections = 800
skip-name-resolve
skip-external-locking
key_buffer_size = 384M
max_allowed_packet = 1073M 
table_open_cache = 512
sort_buffer_size = 512K 
read_buffer_size = 512K
read_rnd_buffer_size = 512K
join_buffer_size = 128K
myisam_sort_buffer_size = 64M
thread_cache_size = 256
query_cache_size = 0
query_cache_type = 0
tmp_table_size = 64M
max_heap_table_size = 64M
 
basedir=${base_dir}
datadir=${data_dir}
/data
${port}
 
pid-
file 
= ${data_dir}
/data
${port}
/mysql
.pid
log_error = ${data_dir}
/data
${port}
/mysql
.err
 
# set binary logging is required for replication
log-bin=mysql-bin
binlog_cache_size = 32M
 
# event_scheduler shutoff in mysqld slave
event_scheduler = 1 
binlog_format=row
expire_logs_days = 3
 
# set slow log
slow_query_log = 1
long_query_time = 2
 
#set 字符
character_set_server = utf8
 
#set 大小写敏感
 
lower_case_table_names=1
 
# set mysqld server_id
server-
id   
= ${port}
 
# set innodb params
innodb_data_home_dir = ${data_dir}
/data
${port} 
innodb_log_group_home_dir = ${data_dir}
/data
${port} 
innodb_buffer_pool_size = 5972M
innodb_additional_mem_pool_size = 10M
innodb_log_file_size = 512M
innodb_log_buffer_size = 16M
innodb_flush_log_at_trx_commit = 2 
innodb_flush_method = O_DIRECT
innodb_file_per_table = 1
innodb_lock_wait_timeout = 10
innodb_file_format = Barracuda
innodb_file_format_max = Barracuda
innodb_stats_on_metadata = 0
innodb_purge_threads = 1
innodb_read_io_threads = 12
innodb_write_io_threads = 12
innodb_purge_threads = 1
innodb_open_files = 500
innodb_thread_concurrency = 0
innodb_io_capacity = 600
 
[client]
default-character-
set 
= utf8
 
EOF
# initizal mysql Db 
chmod 
+x ${base_dir}
/scripts/mysql_install_db
${base_dir}
/scripts/mysql_install_db 
--basedir=${base_dir} --datadir=${data_dir}
/data
${port} --user=mysql --defaults-
file
=${base_dir}
/my
.cnf >> ${pkg_dir}
/install
.log
echo 
"end mysqld install." 
>> ${pkg_dir}
/install
.log
}
 
# mysql datafile path
for 
port 
in 
2016 3017 4018 5019 6020 
do
        
# check mysql base and data dir folder
        
if 
[ ! -d ${data_dir}
/data
${port} ];
then
                
mkdir 
-p ${data_dir}
/data
${port}
                
# function mysqld_install to mysql programmer
                
pre_install_mysqld $port
        
else
                
pre_install_mysqld $port
        
fi
done
 
#mysql data
chown 
-R mysql:mysql ${data_dir}
/data
chown 
-R mysql:mysql ${base_dir}
/data
 
#环境变量
echo 
'export PATH=$PATH:/usr/local/mysql/bin' 
>>  
/etc/profile
source 
/etc/profile

本文转自 shouhou2581314 51CTO博客,原文链接:http://blog.51cto.com/thedream/1838263,如需转载请自行联系原作者

你可能感兴趣的文章
求一棵二叉树的镜像
查看>>
Principal Component Analysis(PCA) algorithm summary
查看>>
【安装Ubuntu 遇到问题】 the system is running in low-graphics mode 最新办法解决
查看>>
达拉草201771010105《面向对象程序设计(java)》第十八周学习总结
查看>>
Mysql中文输入出现1366错误的解决办法
查看>>
Ant调用Java中文显示乱码
查看>>
database工具
查看>>
[转] JavaScript 运行机制详解:再谈Event Loop
查看>>
我的转正申请
查看>>
【leetcode】509. Fibonacci Number
查看>>
day10--进程
查看>>
结构训练
查看>>
查询数据库保存成CSV格式
查看>>
enumerate
查看>>
PHP三元运算符 isset的理解
查看>>
dede织梦:文章内容页调用
查看>>
开发中常用的 25 个JavaScript 单行代码
查看>>
phh7 安装redis扩展
查看>>
也许你一直「坚持」不下去,是缺少这个前提
查看>>
终端的实用命令行
查看>>