设为首页 收藏本站
查看: 1038|回复: 0

[经验分享] MySQL最新版本 MySQL5.7.11 批量自动化一键式安装

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-3-24 10:49:03 | 显示全部楼层 |阅读模式

以前都喜欢了源码安装MySQL,总觉得源码是高大上的事情,不过源码也需要时间,特别是make的时候,如果磁盘和cpu差的话,时间很长很长,在虚拟机上安装mysql尤其甚慢了。


现在业务发展了,开始在云上部署了,需要经常安装mysql,有的时候一次部署很多台,如果还是源码安装一个个去执行,效率就比较差了,所以准备采用更快效率的二进制来实现一键式自动化安装mysql。


1,mysql二进制安装包下载地址

下载地址:http://download.csdn.net/detail/mchdba/9488918,包括

1)  一键式自动安装脚本:auto_install_mysql5.7.sh;

2)  Mysql参数文件my.cnf

3)  Mysql5.7二进制安装包,在readme_mysql5.7_down_address.txt文件里面有下载地址连接,比mysql官网下载速度快很多倍。


PS:下载之后,将脚本已经所有软件放在同一个目录比如/soft目录下面。


blog源地址:http://blog.csdn.net/mchdba/article/details/51138063,谢绝转载。

2,自动化初始化linux服务器脚本

执行bash -x init_linux.sh就开始自动初始化Linux服务器了, 自动化安装脚本init_linux.sh如下,下载地址为http://download.csdn.NET/detail/mchdba/9488929

#1 instal jdk , add tomcat user                                                                              
sh init_jdk.sh

useradd tomcat
mkdir -p /usr/local/app/
chown -R tomcat.tomcat /usr/local/app

#2 # vim /etc/sudoers
echo "tomcat  ALL=(ALL)       ALL" >> /etc/sudoers

#3 set limits.conf
echo "*    soft nofile 65536" >>  /etc/security/limits.conf
echo "*    hard nofile 65536" >> /etc/security/limits.conf
ulimit -a



#4 kernel optimization
grep "net.ipv4.tcp_keepalive_time = 30" /etc/sysctl.conf
if [ $? != 0 ]
  then
cat <<EOF>> /etc/sysctl.conf
net.ipv4.tcp_max_tw_buckets = 6000
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_tw_reuse = 1
net.core.somaxconn = 262144
net.core.netdev_max_backlog = 262144
net.ipv4.tcp_max_orphans = 262144
net.ipv4.tcp_max_syn_backlog = 262144
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_fin_timeout = 1
net.ipv4.tcp_keepalive_time = 30
net.ipv4.tcp_keepalive_probes = 6
net.ipv4.tcp_keepalive_intvl = 5
net.ipv4.tcp_timestamps = 0
EOF


sed -i 's/net.bridge.bridge-nf-call-ip6tables = 0/#net.bridge.bridge-nf-call-ip6tables = 0/g' /etc/sysctl.conf
sed -i 's/net.bridge.bridge-nf-call-iptables = 0/#net.bridge.bridge-nf-call-iptables = 0/g' /etc/sysctl.conf
sed -i 's/net.bridge.bridge-nf-call-arptables = 0/#net.bridge.bridge-nf-call-arptables = 0/g' /etc/sysctl.conf
fi

sysctl -p

#5 selinux disabled
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
sed -i 's/id:5:initdefault:/id:3:initdefault:/g' /etc/inittab

#6 stop some services
service iptables stop
sh stopservice.sh

#7 see the version
#less /etc/issue

#8 set 90-nproc
sed -i 's/*          soft    nproc     1024/#*          soft    nproc     1024/g'   /etc/security/limits.d/90-nproc.conf
sed -i 's/root       soft    nproc     unlimited/*       soft    nproc     unlimited/g'   /etc/security/limits.d/90-nproc.conf

#9 system basic lib package install
yum install gcc gcc-c++ ncurses-devel.x86_64 cmake.x86_64 libaio.x86_64 bison.x86_64 gcc-c++.x86_64 bind-utils wget curl curl-devel perl openssh-clients setuptool sysstat -y
yum search rz -y
yum install -y lrzsz.x86_64

#10 set shanghai time
cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock

#11 restart the linux server
shutdown -r now


3,自动化安装脚本

执行脚本bash  -x auto_install_mysql5.7.sh,开始一键式安装,自动化安装脚本如下:

# install the basie lib
yum install cmake -y
groupadd mysql
useradd -g mysql mysql
autoreconf --force --install
libtoolize --automake --force
automake --force --add-missing
yum install -y libtoolize
yum install gcc gcc-c++ -y
yum install -y ncurses-devel.x86_64
yum install -y cmake.x86_64
yum install -y libaio.x86_64
yum install -y bison.x86_64
yum install -y gcc-c++.x86_64
yum install make -y

# add mysql account,create the basic directory
mkdir -p /data/mysql/data
cd /data/mysql/data
chown -R mysql.mysql /data
chown -R mysql.mysql /usr/local/mysql5711
mkdir -p /data/mysql/binlog/
chown -R mysql.mysql /data/mysql/binlog/
cd /usr/local/mysql5711/

# init databases
rm -rf /data/mysql/data/*
cp my.cnf /usr/local/mysql5711/my.cnf
time bin/mysqld --defaults-file=/usr/local/mysql5711/my.cnf --initialize --user=mysql

# set the auto start on linux server started
cp support-files/mysql.server /etc/init.d/mysql
chmod 700 /etc/init.d/mysql
echo "export PATH=$PATH:/usr/local/mysql5711/bin">>/etc/profile
source /etc/profile
chkconfig --add mysql

# do a soft link to start mysql
cd /usr/local/
ln -s /usr/local/mysql5711 mysql

# remove default my.cnf
mv /etc/my.cnf /tmp/

# set the default password
/usr/local/mysql/bin/mysqld_safe --skip-grant-tables --skip-networking &
/usr/local/mysql/bin/mysql -uroot --password='' --socket='/usr/local/mysql/mysql.sock' -e " update mysql.user set authentication_string=password('dns_yuerld') where user='root' and Host = 'localhost'; flush privileges;"
/usr/local/mysql/bin/mysql -uroot --password='dns_yuerld' --socket='/usr/local/mysql/mysql.sock' -e " set PASSWORD=PASSWORD('dns_yuerld'); create database t; create table t1 select 1 as a; select * from t1;"

如果mysqld_safe启动失败,可以直接在my.cnf的mysqld选项卡里面添加skip-grant-tables=1,然后重启mysql,就可以无密码登陆进来。

# restart the mysql server
service mysql restart

# check the test
/usr/local/mysql/bin/mysql -uroot --password='dns_yuerld' --socket='/usr/local/mysql/mysql.sock' -e " select * from t1;"



4,批量安装很多mysql实例        将脚本和安装软件scp到N台服务器,然后ssh ip地址 " sh /soft/init_linux.sh; sh /soft/install_mysql.sh;",用后台批量进程来安装。



5,why?采用二进制安装而不采用源码安装

主要是源码安装在make环节需要消耗太多时间,一次源码安装mysql需要很久,而二进制安装免去了configure、make、make install这一步骤,大大缩减了安装时间提升了效率,单台安装mysql感觉不大,如果一次性安装成千上万台,这个差距就是天上地下咯。


另外:安装过程中要实时查看控制台信息,如果有诡异的错误信息,要及时排查。




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-354531-1-1.html 上篇帖子: mysql 主从同步服务原理 下篇帖子: MySQL初始化root密码和允许远程访问
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表