MySQL安裝指令碼0104-親試ok
阿新 • • 發佈:2019-01-04
#!/bin/bash
export host_ip=192.168.7.79
export password=123456
echo '#1.取master主機ip的後三位作為master的server_id'
export host_server_id=`echo $host_ip |awk -F . '{print $4}'`
echo '1.遮蔽當前的MySQL環境'
service mysql stop
rm -f /etc/my.cnf
echo '2.檢查並解除安裝系統中低版本的mysql'
#rpm -e mariadb-libs --nodeps
echo '3.新增使用者和組'
rm -rf /home/mysql/
userdel mysql
#groupdel mysql
groupadd mysql
useradd -g mysql mysql
echo '4.建立目錄及授權'
rm -rf /data
mkdir -p /data/mysql
mkdir -p /data/my3306/data
mkdir -p /data/my3306/log/iblog
mkdir -p /data/my3306/log/binlog
mkdir -p /data/my3306/log/relaylog
mkdir -p /data/my3306/run
mkdir -p /data/my3306/tmp
chown -R mysql:mysql /data/my3306
chmod -R 755 /data/my3306
echo '5.上傳解包軟體包'
cd /softwares
tar zxf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
cd mysql-5.7.23-linux-glibc2.12-x86_64
cp -R * /data/mysql/
chown -R mysql:mysql /data/
echo '6.修改配置檔案my.cnf引數'
#手動上傳寫好的my.cnf配置檔案
cp /scripts/my.cnf /etc/
##cp /data/mysql/support-files/my-default.cnf /data/mysql/my.cnf
chown -R mysql:mysql /data/my3306
cd /data/my3306/data
rm -rf *
cd /data/my3306/log
rm -f binlog/*
rm -f iblog/*
rm -rf relaylog/
rm -rf slow.log
echo '7.執行MySQL安裝指令碼'
cd /data/mysql/
bin/mysqld --initialize-insecure --user=mysql --datadir=/data/my3306/data #必須到指令碼的父目錄執行哦
#./scripts/mysql_install_db --defaults-file=/data/mysql/my.cnf --user=mysql --datadir=/data/my3306/data
echo '#8.取master主機ip的後三位作為master的server_id'
export host_server_id=`echo $host_ip |awk -F . '{print $4}'`
echo $host_server_id
#eval sed -i 's/server_id=128/server_id=${host_server_id}/g' /etc/my.cnf
cat /etc/my.cnf |grep server_id
echo '9.修改系統環境變數'
echo "PATH=/data/mysql/bin:\$PATH:/sbin" >> /etc/profile
echo '10.自啟動指令碼'
cp /data/mysql/my.cnf /etc/my.cnf
cp /data/mysql/support-files/mysql.server /etc/init.d/mysql
sed -i 's#^basedir=#basedir=/data/mysql#g' /etc/init.d/mysql
sed -i 's#^datadir=#datadir=/data/mysql/data#g' /etc/init.d/mysql
sed -i 's#^mysqld_pid_file_path=#mysqld_pid_file_path=/data/my3306/run/mysqld.pid#g' /etc/init.d/mysql
chkconfig --add mysql
/etc/init.d/mysql start
/etc/init.d/mysql stop
service mysql start
echo '11.刪除預設匿名賬戶'
#mysql -h127.0.0.1 -uroot -P3306 -e "flush privileges;"
mysql -uroot -P3306 <<EOF
flush privileges;
update mysql.user set authentication_string=password("123456") where user='root';
delete from mysql.user where user='';
set old_passwords=0;
create user 'replusr'@'%' identified by '123456';
create user 'root'@'%' identified by '123456';
create user 'root'@'192.168.7.207' identified by '123456';
grant replication slave on *.* to 'replusr'@'%';
grant super on *.* to 'replusr'@'%';
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
update mysql.user set authentication_string=password("123456") where user='root';
flush privileges;
EOF
service mysql restart
exit