自动化运维是一个DBA应该掌握的技术,其中,自动化安装数据库是一项基本的技能,本文中的安装脚本已通过测试,作为生产库来说没有问题,鉴于每个公司存储规划要求不同,可以按需自行修改脚本。
脚本中已经注释说明一些基本的安装信息
本脚本默认启用5.6部分新特性
1
2
|
innodb_buffer_pool_dump_at_shutdown=1 它dump的不是数据,是Id号
innodb_buffer_pool_load_at_startup=1
|
开启这个两个参数当数据库重启后把这些热数据重新加载回去
只有正常关库才会dump热数据块,宕机和kill -9不会
部分参数按需整改,例如innodb_buffer_pool_size = 512M,本文给的512M,一般给内存的50%-80%。
来看一下脚本的具体情况[root@HE3 ~]# cat mysql_auto_install.sh
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
|
######二进制自动安装数据库脚本root密码MANAGER将脚本和安装包放在/root目录即可###############
######数据库目录/usr/ local /mysql############
######数据目录/data/mysql############
######日志目录/log/mysql############
######端口号默认3306其余参数按需自行修改############
##################
#author:rrhelei@126.com#
##################
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/opt/bin:/opt/sbin:~/bin
export
PATH
# Check
ifuserisroot
if[$(id
-u)!= "0" ]; then
echo "Error:Youmustberoottorun
thisscript,pleaseuseroottoinstall"
exit1
fi
clear
echo
"========================================================================="
echo
"Atooltoauto-compile&installMySQL5.6.25onRedhat/CentOSLinux
"
echo
"========================================================================="
cur_dir=$(pwd)
# set
mysqlrootpassword
echo "==========================="
mysqlrootpwd= "MANAGER"
echo-e "Pleaseinputtherootpasswordofmysql:"
read -p "(Defaultpassword:MANAGER):" mysqlrootpwd
if[ "$mysqlrootpwd" = "" ]; then
mysqlrootpwd= "MANAGER"
fi
echo "==========================="
echo "MySQLrootpassword:$mysqlrootpwd"
echo "==========================="
#which
MySQLVersiondoyouwanttoinstall?
echo
"==========================="
isinstallmysql56= "n"
echo "InstallMySQL5.6.25,Pleaseinputy"
read -p "(Pleaseinputy,n):" isinstallmysql56
case "$isinstallmysql56" in
y|Y|Yes|YES|yes|yES|yEs|YeS|yeS)
echo "YouwillinstallMySQL5.6.25"
isinstallmysql56= "y"
;;
*)
echo "INPUTerror,YouwillexitinstallMySQL5.6.25"
isinstallmysql56= "n"
exit
esac
get_char()
{
SAVEDSTTY=`stty-g`
stty-echo
sttycbreak
#ddif=/dev/ttybs=1count=12>/dev/ null
stty-raw
sttyecho
stty$SAVEDSTTY
}
echo ""
echo "Pressanykeytostart...orPressCtrl+ctocancel"
char =`get_char`
#
Initializetheinstallationrelated
content.
function
InitInstall()
{
cat/etc/issue
uname-a
MemTotal=` free -m|grepMem|awk '{print$2}' `
echo-e "\nMemoryis:${MemTotal}MB"
#Settimezone
rm-rf/etc/localtime
ln-s/usr/share/zoneinfo/Asia/Shanghai/etc/localtime
#DeleteOldMysqlprogram
rpm-qa|grepmysql
rpm-emysql
#yum-yremovemysql-servermysqlmysql-libs
#yum-yremovephp-mysql
#yum-yinstallyum-fastestmirror
#yum-yupdate
#DisableSeLinux
if[-s/etc/selinux/config]; then
sed-i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
fi
setenforce0
}
#Installation
ofdependonandoptimizationoptions.
function
InstallDependsAndOpt()
{
cd
$cur_dir
cat
>>/etc/security/limits.conf<>/etc/sysctl.conf
}
#Install
MySQL
function
InstallMySQL56()
{
echo
"============================InstallMySQL
5.6.22=================================="
cd
$cur_dir
#Backup
oldmy.cnf
#rm-f
/etc/my.cnf
if[-s
/etc/my.cnf]; then
mv/etc/my.cnf/etc/my.cnf.` date
+%Y%m%d%H%M%S`.bak
fi
#mysql
directoryconfiguration
groupadd
mysql-g512
useradd-u512-gmysql-s/sbin/nologin-d/home/mysqlmysql
tarxvf/root/mysql-5.6.25-linux-glibc2.5-x86_64.tar.gz
mv/root/mysql-5.6.25-linux-glibc2.5-x86_64/usr/ local /mysql
mkdir-p/data/mysql
mkdir-p/log/mysql
chown-Rmysql:mysql/data/mysql
chown-Rmysql:mysql/usr/ local /mysql
chown-Rmysql:mysql/log
#edit/etc/my.cnf
SERVERID=`ifconfigeth0|grep "inetaddr" |awk '{print$2}' |awk-F. '{print$4"3306"}' `
cat
>>/etc/my.cnf<>/etc/ld.so.conf.d/mysql-x86_64.conf<>/etc/profile</tmp/mysql_sec_script<&1|tee/root/mysql-install.log
CheckAndDownloadFiles2>&1|tee-a/root/mysql-install.log
InstallDependsAndOpt2>&1|tee-a/root/mysql-install.log
InstallMySQL562>&1|tee-a/root/mysql-install.log
CheckInstall2>&1|tee-a/root/mysql-install.log
|
执行脚本后,输入用户名密码(默认MANAGER)后登录数据库成功。
1
|
wKioL1fOIHTQR5ktAAElfoh_FOg089.jpg-wh_50
|
以上所述是小编给大家介绍的生产库自动化MySQL5.6安装部署详细教程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!