MySQL最新版本 MySQL5.7.11 批量自动化一键式安装(转)

摘要:
现在,业务已经发展并开始在云上部署,MySQL需要经常安装。有时一次部署多个集合。如果逐一安装并执行源代码,效率将很差。因此,我们将使用更快、更高效的二进制文件来实现MySQL的一键自动安装。1.MySQL二进制安装包下载地址下载地址:http://download.csdn.net/detail/mchdba/9488918,包括1)一键自动安装脚本:auto_ install_ mysql5.7.sh;2) MySQL参数文件my。cnf3)MySQL 5.7二进制安装包,位于readme_mysql5.7_down_地址中。txt文件具有下载地址连接,比mysql官方网站快很多倍。博客源地址:http://blog.csdn.net/mchdba/article/details/51138063,不允许转载。

--背景云端

以前都喜欢了源码安装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;"

# 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感觉不大,如果一次性安装成千上万台,这个差距就是天上地下咯。

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

免责声明:文章转载自《MySQL最新版本 MySQL5.7.11 批量自动化一键式安装(转)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇win764bit,下载了mysql 5.6.21默认安装在c盘,担心以后会占空间,需要改动吗?怎么改?DNS服务基础下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Rsync+sersync部署

内核版本:2.6.32-431.el6.x86_64 系统采用最小化安装,系统经过了基本优化,selinux 为关闭状态,iptables 为无限制模式 源码包存放位置:/root Rsync 客户端+Sersync 服务器(SERSYNC),承担角色 MASTER,IP:172.16.100.3,主机名: rsync-client-sersync SE...

Go Mysql Driver 集成 Seata-Golang 解决分布式事务问题

简介: 2020 年 4 月,我们开始尝试实现 go 语言的分布式事务框架 Seata-Golang。众所周知,Seata AT 模式以无业务代码侵入的特点,被广大开发者推崇。Java 版 Seata AT 模式通过对 DataSource 数据源进行代理,在 sql 语句执行时,对 sql 拦截解析,获取数据库对应数据在 sql 语句执行前后的副本,序列...

MySQL_python‑1.2.5‑cp27‑none‑win_amd64.whl is not a valid wheel filename.

转载:https://blog.csdn.net/boahock/article/details/78701374 MySQL-Python 数据库驱动安装 pip install mysql_python失败 不支持windows操作系统 解决: 自行下载安装:http://www.lfd.uci.edu/~gohlke/pythonlibs/...

Nginx+keepalived 高可用双机热备(主从模式)

环境:centos7.6 最小化安装 主:10.11.1.32 从:10.11.1.33 VIP:10.11.1.130 修改主节点主机名: hostnamectl set-hostname web_balance_01 修改从节点主机名: hostnamectl set-hostname web_balance_02 一、安装nginx(两个节点都需要安...

记一次docker安装logstash,并且读取数据库数据到es

docker安装logstash,在hub.docker官网是没有示例的。查了文章,大部分复制黏贴,语焉不详的。看着懵,虽然经过复制黏贴操作启起来了,但还是很多不理解。回想下不用docker安装的logstash,对比了下大致有点理解了。可自己配置run,还是启动没一会自动停止了。懊恼不已。 刚才仔细对比,小心求证发现了问题所在。貌似logstash启动要...

MySQL开启general_log并设置路径

在本地开发的时候,有时需要临时开启MySQL的全局log,查看每条sql执行记录。 以下操作直接在mysql命令行里面执行,不需重启mysql。需要用root身份执行命令。 mysql> set global general_log=on;Query OK, 0 rows affected (0.02 sec)mysql> use l5mDat...