一、mysql安装脚本简介
一键安装mysql数据库脚本用于centos7环境下安装mysql5.7数据库,安装方式为使用普通用户安装mysql解压包。脚本内容包括,首先检查是否安装mariadb,根据检查结果调用卸载mariadb函数;然后执行安装包解压和数据库初始化;然后mysql添加到用户环境变量;最后启动数据库。适用环境:
- 操作系统:centos7
- mysql数据库:mysql5.7
二、安装步骤
1、下载安装脚本
从下载链接地址下载安装脚本压缩包,压缩包中包含安装脚本、mysql软件包、配置文件模板等一键安装mysql数据库脚本.zip下载链接
2、将压缩包上传到centos服务器
[test@localhost ~]$ mkdir mysql$ mkdir mysql
[test@localhost ~]$ rz -y
#将一键安装mysql数据库脚本.zip上传到服务器
3、解压压缩包
[test@localhost mysql]$ unzip 一键安装mysql数据库脚本.zip
Archive: 一键安装mysql数据库脚本.zip
inflating: clean.sh
inflating: my.cnf.bak
inflating: mysql_install.sh
inflating: mysql-5.7.32-el7-x86_64.tar.gz
inflating: startmysql.sh
inflating: stopmysql.sh
4、给脚本添加执行权限
[test@localhost mysql]$ chmod u+x *.sh
5、执行mysql安装脚本
[test@localhost mysql]$ sh mysql_install.sh
6、修改root初始密码
7、登录mysql实例检查
[test@localhost ~]$ mysql -uroot -p -h 127.0.0.1
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.32-log MySQL Community Server (GPL)
Copyright © 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
mysql>
三、其他文件说明
my.cnf.bak文件为mysql数据库的默认配置文件
startmysql.sh为数据库启动脚本
stopmysql.sh为数据库停止脚本,停止时要求输入root账户密码
clean.sh为安装失败需要重新安装前的数据清理脚本,建议在成功安装后删除或者去除执行权限。
四、脚本内容
#!/bin/bash
#script name: mysql_install.sh
#author: [email protected]
###########description##########
#此脚本用于一键安装mysql5.7数据库,此脚本将mysql数据库安装于执行脚本的目录下
#数据库安装前需要将mysql-5.7*.tar.gz文件、my.cnf.bak、startmysql.sh、stopmysql.sh拷贝至安装脚本路径下
#
###########description##########
#version: v1
#parameter definition
curdir=$(cd `dirname $0`; pwd)
curuser=$USER
mysqltarfile=`ls -l |grep tar.gz |awk '{print $9}'`
cfg="my.cnf"
startfile="startmysql.sh"
stopfile="stopmysql.sh"
function use_check(){
if [ $curuser != 'root' ];then
echo "此用户非root,安装数据库前需要卸载系统自带的mariadb和mysql,请使用root卸载后再执行脚本!"
sudo rpm -qa |grep mariadb |xargs rpm -e --nodeps
else
rpm -qa |grep mariadb |xargs rpm -e --nodeps
fi
}
function mariadb_check(){
mariadb_rpm_list=`rpm -qa |grep mariadb`
if [ -n "$mariadb_rpm_list" ];then
echo "mariadb检查结果:系统已安装mariadb,需先卸载"
use_check
return 1
else
echo "mariadb检查结果:系统未安装mariadb"
return 0
fi
}
function mysql_install(){
cd $curdir
cp my.cnf.bak my.cnf
echo "解压安装包$mysqltarfile ..."
tar xf $mysqltarfile
mkdir data
mkdir logs
#获取解压后的目录名称
basedir=`ls -l |grep tar.gz |awk '{print $9}' |cut -d . -f-3`
#将安装路径进行处理,方便sed替换修改
curdirm=`echo $curdir |sed 's#\/#\\\/#g'`
ln -s $basedir mysql5.7
echo -n 'export PATH=$PATH:' >> ~/.bashrc
echo "$curdir/mysql5.7/bin/" >> ~/.bashrc
source ~/.bashrc
sed -i "s/user = wuhs/user= $curuser/g" $cfg
sed -i "s/\/home\/wuhs\/mysql/$curdirm/g" $cfg
echo "现在初始化数据库..."
mysqld --initialize --user=$curuser --basedir=$curdir/mysql5.7/bin/ --datadir=$curdir/data/ --lc-messages-dir=$curdir/mysql5.7/share/english &> init.log
initpasswd=`cat init.log |grep root@localhost |cut -d : -f4-`
echo "开始启动数据库..."
sh startmysql.sh &> /dev/null
ln -s $curdir/mysql.sock /tmp/mysql.sock
echo "初始密码是:$initpasswd"
read -p "请输入需要确定的root@localhost密码: " opt
mysqladmin -u root -p password $opt
rm -rf init.log
echo "恭喜你,数据库安装完成,现在可以开始正式使用啦!"
}
function main(){
mariadb_check
mysql_install
}
main