mysql最新通用二进制分发版本5.7.16自动安装shell脚本

#!/bin/bash
#Function:用于安装mysql-5.7.16二进制分发版本,脚本共有2个文件,一个脚本执行文件installMysql.sh,
#另一个mysql配置文件:my.cnf,注意要将该配置文件放置于/data目录下,当然你
#也可以自己重新定义这些目录,但一定要与my.cnf配置文件中相一致,否则安装失败
#使用该脚本安装mysql需要能连接外网以便能从mysql官网下载mysql二进制安装包
#最好将事先下载好的安装包放置于/data/mysqlSoftware目录下,将download mysql部分代码注释掉即可
#Note:如果选择卸载MYSQL,则需要手动删除一些文件.
#Date:2016/10/8
#Author:Jian
#Company:Jian
#Version:1.0
#Usage:bash installMysql.sh
 
#mysql install function
installMysql() {
#约定的相关目录和文件设置
local configFile=/data/my.cnf            #mysql的配置文件my.cnf
local downloadDir=/data/mysqlSoftware   #安装文件下载目录
local installDir=/usr/local            #mysql目录安装位置
local databaseDir=/data/mysql/data    #数据库保存位置
local logDir=/data/mysql/log         #日志保存位置
local tmpDir=/data/mysql/tmp         #tmp目录位置
local bit=$(getconf LONG_BIT)        #本系统是32还是64位?
local mypasswd="123456"              #设置mysql密码
local oldPath=$(grep -v "#" ~/.bashrc | gawk '$0 ~ /(PATH=)/{print $0}')
local newPath="export PATH=$installDir/mysql/bin:$PATH"
#mysql-community-server-5.7.16-x86_64
local url1="http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz"
#mysql-community-server-5.7.16-x86_32
local url2="http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16-linux-glibc2.5-i686.tar.gz"
mkdir -p $logDir
mkdir -p $downloadDir
mkdir -p $databaseDir
mkdir -p $tmpDir
cd $downloadDir
#如果/data/mysqlSoftware目录下已有下载好的mysql二进制安装包,则下面#download mysql之间的代码可注释掉
#否则需要从官网下载mysql二进制包,由于安装包在600M左右,所以下载较为耗时,整个安装过程就需较长时间

#download mysql
#if [ $bit -eq 64 ];then
#  wget $url1
#elif [ $bit -eq 32 ];then
#  wget $url2
#fi
#download mysql

#解压压缩包到目标位置
ln -s $downloadDir/mysql*.tar.gz $installDir
cd $installDir
echo "Extracting MYSQL file..."
tar -xzf mysql*.tar.gz 
rm -rf $installDir/mysql*.tar.gz
mv $installDir/mysql* mysql
#新建mysql用户、组及目录
echo "Creating MySQL user name and group..."
groupadd mysql
useradd -r -s /sbin/nologin -g mysql mysql -d $installDir/mysql
#更改目录属主
echo "Changing directory owner..."
cd $installDir/mysql
chown -R mysql .
chgrp -R mysql .
cd $logDir
chown -R mysql .
chgrp -R mysql .
cd $databaseDir
chown -R mysql .
chgrp -R mysql .
cd $tmpDir
chown -R mysql .
chgrp -R mysql .
#配置参数
echo "Configuration MYSQL..."
cd $installDir/mysql
bin/mysqld --initialize-insecure --user=mysql --basedir=$installDir/mysql --datadir=$databaseDir
bin/mysql_ssl_rsa_setup --datadir=$databaseDir
#修改系统配置文件
echo "Modifying system configuration file..."
cp $configFile /etc/my.cnf
cp $installDir/mysql/support-files/mysql.server /etc/init.d/mysql
sed -i 's!^basedir=$!basedir='"$installDir"'/mysql!' /etc/init.d/mysql>/dev/null
sed -i 's!^datadir=$!datadir='"$databaseDir"'!' /etc/init.d/mysql>/dev/null
#启动mysql
echo "Booting MYSQL..."
cd $installDir/mysql
bin/mysqld_safe --user=mysql &
sleep 10 
echo
echo "Modifying MYSQL root password..."
#修改root密码
bin/mysqladmin -u root password ''"$mypasswd"''
echo "Adding system path..."
#添加系统路径
if [ -z $oldPath ]; then
  echo "export PATH=$installDir/mysql/bin:$PATH" >> ~/.bashrc
else
  sed -i 's!'"$oldPath"'!'"$newPath"'!' ~/.bashrc
  sed -i '/^export PATH$/d' ~/.bashrc
fi
. ~/.bashrc
echo "Configuring Mysql to start automatically..."
#配置mysql自动启动
chmod 755 /etc/init.d/mysql
chkconfig --add mysql
chkconfig --level 345 mysql on
}

#移除mysql
removeMysql() {
/etc/init.d/mysql status 2>/dev/null
/etc/init.d/mysql stop 2>/dev/null
ps -ef | grep 'mysql' | grep -v 'grep'| awk '{print $2}' | xargs kill -9 2>/dev/null && echo -e "\e[;31mKilled MYSQL process... \e[0m"
echo -e "\e[;31mRemoved MYSQL user and group... \e[0m"
userdel mysql 2>/dev/null
groupdel mysql 2>/dev/null
chkconfig --del mysql 2>/dev/null
echo -e "\e[;31mRemoved MYSQL path... \e[0m"
sed -i '/\/usr\/local\/mysql\/bin:/s/\/usr\/local\/mysql\/bin://g' /root/.bashrc
sed -i '/\/usr\/local\/mysql\/bin:/s/\/usr\/local\/mysql\/bin://g' /home/book/.bashrc
. ~/.bashrc
echo "Have found the following MYSQL files, you need to manually delete them:"
find / \( -iname 'mysql' -o -iname "my.cnf" -o -iname ".my.cnf" \) -print
}


if [ ! $UID -eq 0 ]; then 
  echo -e "\e[;31mYou must be root to run this script! \e[0m" 
  exit 0
fi
read -p "Do you want to install or remove mysql?[i:install r:remove q:quit]:" choice
if [ $choice = "i" ]; then
  installMysql
  exit 0
elif [ $choice = "r" ]; then
  echo -e -n "\e[;31mWarning:are you sure you want to uninstall MYSQL completely and make sure you have a backup?[Y/N]: \e[0m"
  read choice0
  if [ "$choice0" = "Y" -o "$choice0" = "y" ];then
    removeMysql
    exit 0
  elif [ "$choice0" = "N" -o "$choice0" = "n" ];then
    echo "You choose to give up uninstall,exit!"
    exit 0
  else 
    echo -e "\e[;31mWrong choice,exit! \e[0m"
    exit 11
  fi
elif [ $choice = "q" ]; then
  echo "Give up installation,exit!"
  exit 0
else
  echo -e "\e[;31mWrong choice,exit! \e[0m"
  exit 11
fi


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以回答这个问题。以下是一个简单的MySQL8二进制安装脚本示例: #!/bin/bash # 安装MySQL8二进制文件 wget https://dev.mysql.com/get/Downloads/MySQL-8./mysql-8..26-linux-glibc2.12-x86_64.tar.xz tar -xvf mysql-8..26-linux-glibc2.12-x86_64.tar.xz mv mysql-8..26-linux-glibc2.12-x86_64 /usr/local/mysql # 创建MySQL用户和组 groupadd mysql useradd -r -g mysql -s /bin/false mysql # 设置MySQL文件夹权限 chown -R mysql:mysql /usr/local/mysql chmod -R 755 /usr/local/mysql # 初始化MySQL数据库 cd /usr/local/mysql bin/mysqld --initialize --user=mysql # 启动MySQL服务 bin/mysqld_safe --user=mysql & # 设置MySQL开机自启动 cp support-files/mysql.server /etc/init.d/mysql chkconfig --add mysql chkconfig mysql on # 设置MySQL环境变量 echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile source /etc/profile # 完成安装 echo "MySQL8二进制安装完成!" ### 回答2: 编写一个MySQL8二进制安装脚本可以方便地自动安装过程,以下是一个示例: ``` #!/bin/bash # 下载MySQL二进制文件 wget https://dev.mysql.com/get/mysql-8.0.26-linux-glibc2.17-x86_64.tar.xz # 解压缩文件 mkdir /opt/mysql tar xf mysql-8.0.26-linux-glibc2.17-x86_64.tar.xz -C /opt/mysql # 创建MySQL用户和组 groupadd mysql useradd -r -g mysql -s /bin/false mysql # 将MySQL目录权限赋予MySQL用户 chown -R mysql:mysql /opt/mysql/mysql-8.0.26-linux-glibc2.17-x86_64 # 初始化数据库 cd /opt/mysql/mysql-8.0.26-linux-glibc2.17-x86_64/bin ./mysqld --initialize --user=mysql --basedir=/opt/mysql/mysql-8.0.26-linux-glibc2.17-x86_64 --datadir=/opt/mysql/mysql-8.0.26-linux-glibc2.17-x86_64/data # 启动MySQL服务 ./mysqld_safe --datadir=/opt/mysql/mysql-8.0.26-linux-glibc2.17-x86_64/data & PID=$! # 等待MySQL启动完成 while ! ./mysqladmin ping; do sleep 1 done # 设置MySQL root密码 ./mysqladmin -u root password "your_password" # 创建MySQL配置文件 echo "[mysqld]" > /etc/mysql.cnf echo "basedir=/opt/mysql/mysql-8.0.26-linux-glibc2.17-x86_64" >> /etc/mysql.cnf echo "datadir=/opt/mysql/mysql-8.0.26-linux-glibc2.17-x86_64/data" >> /etc/mysql.cnf # 重启MySQL服务并设置开机自启动 kill -9 $PID systemctl start mysql systemctl enable mysql ``` 此脚本首先从MySQL官方网站下载MySQL二进制文件,然后解压缩到指定目录。接下来创建MySQL用户和组,并将权限赋予MySQL用户。然后通过初始化命令初始化数据库,并启动MySQL服务。等待MySQL启动完成后,设置root密码,并创建MySQL配置文件。最后重启MySQL服务并设置开机自启动。 请注意,在运行此脚本之前,确保已经安装了wget和tar命令,并具有适当的权限。可以根据实际需要进行适当的修改和调整。 ### 回答3: MySQL 8的二进制安装脚本如下所示: ```shell #!/bin/bash # 下载和解压MySQL二进制文件 wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz tar xf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz cd mysql-8.0.26-linux-glibc2.12-x86_64 # 配置MySQL环境变量 echo 'export PATH=$PATH:/path/to/mysql-8.0.26-linux-glibc2.12-x86_64/bin' >> ~/.bashrc source ~/.bashrc # 创建MySQL数据文件夹 mkdir -p /data/mysql chown -R mysql:mysql /data/mysql # 初始化MySQL mysqld --initialize-insecure --user=mysql --basedir=/path/to/mysql-8.0.26-linux-glibc2.12-x86_64 --datadir=/data/mysql # 启动MySQL服务 mysqld_safe --user=mysql --basedir=/path/to/mysql-8.0.26-linux-glibc2.12-x86_64 --datadir=/data/mysql & # 设置MySQL开机自启动 cp support-files/mysql.server /etc/init.d/mysql chmod +x /etc/init.d/mysql chkconfig --add mysql chkconfig mysql on # 设置root用户密码 mysqladmin -u root password "your_password" # 创建数据库 mysql -u root -p"your_password" -e "CREATE DATABASE your_database" # 安装完成提示信息 echo "MySQL 8安装完成!" ``` 请注意将上述脚本中的`/path/to/mysql-8.0.26-linux-glibc2.12-x86_64`替换为实际的MySQL二进制文件路径,并将`your_password`和`your_database`替换为实际的root用户密码和要创建的数据库名称。另外,此脚本仅适用于Linux操作系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值