MySQL编译安装:脚本一键安装

#!/bin/bash

#author:zhangheng
#time:2020-5-12
#company:
#QQ:2417429827
#version:v1

####################################
#编译安装mysql 5.7.29
#os: centos7.8.2003 
####################################

#第1步
#假定mysql的源码包已经上传到linux服务器里的当前目录下
#安装解决软件依赖关系的包
yum  install cmake ncurses-devel gcc  gcc-c++  vim  lsof bzip2 openssl-devel -y

#第2步:解压src的rpm包
rpm  -ivh    mysql-community-5.7.29-1.el7.src.rpm

#第3步:进入/root/rpmbuild/SOURCES目录
cd  /root/rpmbuild/SOURCES

#第4步:新建用户
useradd -r  -s /sbin/nologin  mysql

#第5步:新建数据目录
mkdir -p  /data/mysql 

#第6步:修改数据目录的拥有者为mysql
chown  mysql:mysql /data/mysql  

#第7步:解压真正的源码包
tar xf mysql-5.7.29.tar.gz
tar xf boost_1_59_0.tar.bz2
#将boost包移动到mysql解压的包里
mv boost_1_59_0  mysql-5.7.29

#第8步:进入解压后的目录
cd mysql-5.7.29

#第9步:编译前的配置
cmake  -DCMAKE_INSTALL_PREFIX=/usr/local/sc_mysql -DMYSQL_DATADIR=/data/mysql  -DSYSCONFDIR=/etc  -DMYSQL_USER=mysql  -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci  -DWITH_BOOST=boost_1_59_0

#第10步:编译,启动4个进程去编译,加快速度
make -j  4

#第11步:安装编译好的二进制文件到指定的目录(即复制当前目录下编译好的二进制文件到当时指定的目录)
make install 

#第12步:备份原来的my.cnf配置文件,然后清空这个文件,这个文件是mariadb的配置文件,不是mysql的
cp /etc/my.cnf /root/mysql.cnf.bak
>/etc/my.cnf

#第13步:进入编译安装好的mysql的目录--》安装目录
cd  /usr/local/sc_mysql/bin
#执行mysqld这个程序,初始化我们的mysql,并且将日志和临时密码重定向到/root/temp_password.txt文件里
./mysqld --initialize  --user=mysql --basedir=/usr/local/sc_mysql/  --datadir=/data/mysql  &>/root/temp_password.txt

#第14步:修改PATH变量,在linux系统里可以找到我们编译安装的mysql相关的命令
#/etc/profile /etc/bashrc /root/.bashrc /root/.bash_profile
#修改PATH变量,让linux系统里有mysql相关的命令
PATH=$PATH:/usr/local/sc_mysql/bin
echo  'PATH=$PATH:/usr/local/sc_mysql/bin' >>/etc/bashrc

#第15步:就是拷贝mysqld的程序文件到指定的目录,方便后面设置mysqld服务开机启动--》mysqld服务的启动、停止、重启的脚本
cp  ../support-files/mysql.server  /etc/init.d/mysqld


#第16步:关闭防火墙和selinux
#关闭防火墙firewalld服务
service firewalld stop   
#设置firewalld服务开机不启动
systemctl  disable firewalld
#临时关闭selinux
setenforce 0
#永久修改selinux配置文件里的内容
sed -i 's/=enforcing/=disabled/g' /etc/selinux/config

#第17步:设置MySQL开机启动
chkconfig mysqld on

#第18步:启动MySQL
service  mysqld  start

#第19步:登录进去MySQL并且重新设置密码Sanchuang123#
#从保存的临时密码文件里,截取出临时密码,赋值给一个变量temp_pwd
temp_pwd=$(cat /root/temp_password.txt |tail -1|awk '{print $11}')
#给MySQL设置密码为Sanchuang123#
mysql -uroot -p$temp_pwd  --connect-expired-password -e "set password='Sanchuang123#'"

echo '###### congratulation! your mysql has be installed successfully ######'

猜你喜欢

转载自blog.csdn.net/weixin_44321163/article/details/107963203