mysql自动安装脚本

本文提供了一段用于在具备根权限的Linux环境下一键安装MySQL5.6的Shell脚本。该脚本详细展示了如何检查运行环境、下载并解压MySQL软件包、配置数据目录、调整用户权限、安装依赖库、初始化数据库、修改配置文件及启动服务等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/bin/bash
#        "################检查本机安装mysql的基本条件########################"
echo "Checking  user :"
d=`id -u`
if [ $d -ne 0 ]
then
   echo "you must be root to run this script,please user root to install"
   exit 1
else
   echo "user is root;this is ok"
fi
#if [ -d /data/mysql ]
#then 
#   echo "mysql datadir /data/mysql is exist;"
#   exit 1
#else
#   echo "mysql datadir /data/mysql not exits,this is ok"
#fi
p=`netstat -nlt|awk '{print $4}'|grep '3306'|awk -F ':' '{print $4}'`
if [ $p -eq 3306 ]
then
   echo "mysql port exits;"
   break
else
   echo "mysql port not exits"
fi


##install mysql
echo "#############################  MySQL  installing..........########################"
cd /usr/local/src
w=`rpm -qa|grep wget`
if [ -z $w ]
then
   echo "THe is wget not install;"
   yum install -y wget 
   break
else
   echo "wget install ok;"
fi
wget http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
tar -zxvf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz  
if [ -d /usr/local/mysql ]
then
  echo "datadir exits"
  break
fi 
mv /usr/local/src/mysql-5.6.39-linux-glibc2.12-x86_64  /usr/local/mysql
if grep -q "mysql" /etc/passwd 
then
   echo "mysql user exist;"
   break
else
   useradd mysql
fi
dat='data/mysql'
if [ -d $dat ]
then
   chown -R mysql:mysql /data/mysql
   echo "mysql datadir /data/mysql is exist;"
else
   mkdir -p /data/mysql
   chown -R mysql:mysql /data/mysql
   echo "directory /data/mysql created succeed!"
fi
yum=`yum list |grep -w perl-Data-Dumper.x86_64|awk -F '.' '{print $1}'`
#yum1=`yum list |grep libaio-devel.x86_64`
if [ -z $yum ]
then
   yum install -y libaio libaio-devel  perl-Data-Dumper
   break
fi
 echo "The is install"
cd /usr/local/mysql/
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
if [  $? -eq 0 ]
then
   echo  "mysql is installed"
   break
fi
if grep -wq "datadir=/var/lib/mysql"  /etc/my.cnf
then
   sed -i 's@datadir=/var/lib/mysql@datadir=/data/mysql@g' /etc/my.cnf
   echo "log-error = /data/mysql.log"
   break
fi
echo "datadir correct;"
if grep -wq "socket=/var/lib/mysql/mysql.sock" /etc/my.cnf
then
  sed -i 's@socket=/var/lib/mysql/mysql.sock@socket=/tmp/mysql.sock@g' /etc/my.cnf
  sed -i 's@log-error=/var/log/mariadb/mariadb.log@log-error/data/mysql/error.log@g' /etc/my.cnf
  break
fi
echo "socket correct;"
cp /usr/local/mysql/support-files/mysql.server     /etc/init.d/mysqld
if grep -q "basedir=" /etc/init.d/mysqld
then
   sed -i 's@basedir=@basedir=/usr/local/mysql@g' /etc/init.d/mysqld
   sed -i 's@ddatadir=@datadir=/data/mysql@g'    /etc/init.d/mysqld
else
   break
fi
if [ $? -eq 0 ]
then
   echo "mysqld correct"
   break
fi
chkconfig --add mysqld
chkconfig mysqld on
service mysqld start
p=`netstat -nlt|awk '{print $4}'|grep '3306'|awk -F ':' '{print $4}'`
if [ $p -eq 3306 ]
then
   echo "mysql port start;"
   break
else
   echo "mysql port not exits"
fi
S=`ps aux |grep -w mysqld|grep -v grep |awk '{print $2}'`
if [ -n $S ]
then
   echo "msyql server start"
   exit
fi

 

转载于:https://my.oschina.net/yuanhaohao/blog/2249587

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值