#! /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
mycat
最新推荐文章于 2023-07-24 14:08:03 发布