mycat

#! /usr/bin/bash

#首先移除历史环境,否则影响mysqld的安装
yum remove mariadb-libs -y

#安装环境,否则mysql输入显示error while loading shared libraries: libncurses.so.5: cannot open shared object file
yum install libncurses* -y

##创建用户和组
useradd mysql -s /sbin/nologin


##创建数据储存目录
mkdir -p /data/mysqldata

##创建日志目录
mkdir -p /var/log/mysql

##设置权限
#chown mysql:mysql -R /usr/local/mysql
chown mysql:mysql -R /data/mysqldata
chown mysql:mysql -R /var/log/mysql

#增加环境变量
#echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile
#source /etc/profile

##到放安装包的目录
cd /opt/

##解压tar包
tar -xvf mysql-5.7.35-el7-x86_64.tar

##删除tar包,因为gunzip mysql-5.7.35-el7-x86_64.tar.gz解压之后,也有个包叫mysql-5.7.35-el7-x86_64.tar,不删要手动覆盖
rm -rf mysql-5.7.35-el7-x86_64.tar

##再次确认安装gzip命令
yum install -y gzip


echo "loading... please wait a moment ###########################"
##解压.gz包
gunzip mysql-5.7.35-el7-x86_64.tar.gz


echo "loading... please wait a moment ###########################"


#解压tar包,!!注意这不是之前的tar包!!只是和之前同名
tar -xvf mysql-5.7.35-el7-x86_64.tar

echo "loading... please wait a moment ###########################"

#解压mysql-5.7.35-el7-x86_64.tar后得到一个目录,将此目录移动到/usr/local/下,并命名为mysql
mv mysql-5.7.35-el7-x86_64 /usr/local/mysql

##修改所属用户和组为mysql
chown mysql:mysql -R /usr/local/mysql

##初始化数据库(不生成临时密码)
/usr/local/mysql/bin/mysqld --initialize-insecure  --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldata

##配置文件 /etc/my.cnf
echo -e "[mysqld]\nuser=mysql\nbasedir=/usr/local/mysql\ndatadir=/data/mysqldata\nserver_id=6\nlog-error=/var/log/mysql/error.log\npid-file=/data/mysqldata/mysql.pid\nport=3306\nsocket=/tmp/mysql.sock\n[mysql]\nsocket=/tmp/mysql.sock" >> /etc/my.cnf

##启动mysql服务
#/usr/local/mysql/support-files/./mysql.server start

##复制启动脚本生产系统命令,并添加到systemctl管理
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

#chkconfig --add mysqld

#systemctl start mysqld
##增加环境变量
#echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile
#source /etc/profile



#################多实例单板本(mysql-5.7.35-el7-x86_64)####################

#systemctl stop mysqld
#/etc/init.d/./mysqld stop
#mv /etc/my.cnf /etc/my.cnf.bak
#同一个版本的mysql不用停止mysql服务,也不用删除第1个mysql的/etc/my.cnf
#环境变量也不用删除



#建立第2和第3个mysql服务的datadir
#basedir的路径和第一个mysql是同一个,所以不用创建
#第二第三个mysql的my.cnf中,basedir和第一个mydql一样

mkdir -p /data/330{7,8,9}/data
mkdir -p /data/3310/data
#改变目录下所有文件所属用户和组为mysql
chown -R mysql:mysql /data/*

#创建第二个mysql的my.cnf
cat >/data/3307/my.cnf <<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/data/3307/data
socket=/data/3307/mysql.sock
log_error=/data/3307/mysql.log
port=3307
server_id=7
log_bin=/data/3307/mysql-bin
EOF


#创建第三个mysql的my.cnf
cat >/data/3308/my.cnf <<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/data/3308/data
socket=/data/3308/mysql.sock
log_error=/data/3308/mysql.log
port=3308
server_id=8
log_bin=/data/3308/mysql-bin
EOF


cat >/data/3309/my.cnf <<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/data/3309/data
socket=/data/3309/mysql.sock
log_error=/data/3309/mysql.log
port=3309
server_id=9
log_bin=/data/3309/mysql-bin
EOF

cat >/data/3310/my.cnf <<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/data/3310/data
socket=/data/3310/mysql.sock
log_error=/data/3310/mysql.log
port=3310
server_id=10
log_bin=/data/3310/mysql-bin
EOF



#初始化
/usr/local/mysql/bin/mysqld --initialize-insecure  --user=mysql --datadir=/data/3307/data --basedir=/usr/local/mysql
/usr/local/mysql/bin/mysqld --initialize-insecure  --user=mysql --datadir=/data/3308/data --basedir=/usr/local/mysql
/usr/local/mysql/bin/mysqld --initialize-insecure  --user=mysql --datadir=/data/3309/data --basedir=/usr/local/mysql
/usr/local/mysql/bin/mysqld --initialize-insecure  --user=mysql --datadir=/data/3310/data --basedir=/usr/local/mysql



#创建systemd启动脚本
cd /etc/systemd/system/
###############################
cat > mysqld.service <<EOF
[Unit] 
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld  --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
EOF
#############################
cat > mysqld3307.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld  --defaults-file=/data/3307/my.cnf
LimitNOFILE = 5000
EOF
###############################
cat > mysqld3308.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld  --defaults-file=/data/3308/my.cnf
LimitNOFILE = 5000
EOF
###############################
cat > mysqld3309.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(9)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld  --defaults-file=/data/3309/my.cnf
LimitNOFILE = 5000
EOF
#################################

cat > mysqld3310.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(10)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld  --defaults-file=/data/3310/my.cnf
LimitNOFILE = 5000
EOF








#重新载入systemd的脚本配置
systemctl daemon-reload

#启动各个实例
#systemctl start mysqld.service
systemctl start mysqld3307.service
systemctl start mysqld3308.service
systemctl start mysqld3309.service
systemctl start mysqld3310.service

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值