Shell脚本一键安装-----MYSQL数据库

理论就不过多描述了

  • 实验环境:
    一台Centos7虚拟机(独立安装Mysql)
    一定要提前拉好呦~
  • 代码如下:
 #! /bin/bash                                              独立安装mysql(#^.^#)
#!/bin/bash
echo "##############################################"
echo "##      一键部署MYSQL服务注意事项          ###"
echo "##        1:只要你跟着来,实验绝对没问题  ###"
echo "##        2:软件包为(图片上的软件包)    ###"
echo "##        3:前面可能会需要你操作,        ###"
echo "##           MYSQL服务就轻松了             ###"
echo "##############################################"

setenforce 0
systemctl stop firewalld
read -p 脚本即将开始,请问您准备好了吗(yes/no) a
if [ $a = yes ];then
                       echo -e "\033[32m那么咱们走起~\033[0m"
elif [ $a = no ];then
                        echo -e "\033[31m既然你没有准备好,那在等等\033[0m"
                        exit 0
else 
                        printf "\033[1;31;40m竟然不选择,从来老铁\n\033[0m" 
                        exit 0
fi
###########配置网卡信息##########
echo -e "\033[34m请配置本机网卡基本信息...\033[0m"
mask=255.255.255.0
read -p "输入网卡接口名称:" ens
read -p "输入IP地址:" ip
echo -e "\033[33m子网掩码已默认为:255.255.255.0\033[0m"
read -p "输入网关地址:" route
read -p "输入首选DNS地址:" dns

ifc="/etc/sysconfig/network-scripts/ifcfg-"

echo "DEVICE=$ens" > $ifc$ens
echo "TYPE=Ethernet" >> $ifc$ens
echo "BOOTPROTO=static" >> $ifc$ens
echo "ONBOOT=yes" >> $ifc$ens
echo "IPADDR=$ip" >> $ifc$ens
echo "NETMASK=$mask" >> $ifc$ens
echo "GATEWAY=$route" >> $ifc$ens
echo "DNS1=$dns" >> $ifc$ens

systemctl restart network

###########搭建YUM仓库##########
echo -e "\033[34m正在搭建yum源中...\033[0m"
rm -rf /etc/yum.repos.d/*
read -p 请输入您所搭建的yum文件名(例:yum.repo) b
#其余的名字你就不用管了
echo "[123]" > /etc/yum.repos.d/$b
echo "name=hauizhe" >> /etc/yum.repos.d/$b
read -p 请选择您所搭建的YUM源为哪种类型(file,ftp,http) c
if [ $c = file ];then 
                        printf "\033[1;31;40m虚拟机中光盘已连接了吗?现在连接还来得及\033[0m"
                        echo ""
                        read -p 请选择您光盘的挂载目录(例:/media) d
                        cd $d &>/1.txt
if [ $? = 0 ];then
                    echo -e "\033[31m目录已选择成功\033[0m"
                    echo "baseurl=$c://$d" >> /etc/yum.repos.d/$b
else 
                   echo -e "\033[31m目录不存在,正在创建...\033[0m"
                   mkdir -p $d
                   printf "\033[4;32;50m创建目录完毕\033[0m"   
                   echo "baseurl=$c://$d" >> /etc/yum.repos.d/$b
fi
mount /dev/cdrom $d &>/1.txt
printf "光盘已挂载成功"

elif [ $c = ftp ];then
                         echo -e "\033[31m你要确保ftp源可以使用呦~\033[0m"
                         read -p 请输入ftp服务器地址 f
                         echo "baseurl=$c://$f" >> /etc/yum.repos.d/$b
elif [ $c = http ];then
                       echo -e "\033[31m你要确保http源可以使用呦~\033[0m"
                       read -p 请输入http服务器地址 e
                       echo "baseurl=$c://$e" >> /etc/yum.repos.d/$b
else 
printf "\033[1;31;40m什么都不选,你还想搭建???\033[0m" 
exit 0             
fi
echo "enable=1" >> /etc/yum.repos.d/$b
echo "gpgcheck=0" >> /etc/yum.repos.d/$b
echo -e "\033[32mYUM源搭建完毕\033[0m"
###########搭建MYSQL正式开始##########
echo 准备工作
read -p 请问您相关软件包拉入到home下了吗(看图片选择yes/no) a
if [ $a = yes ];then
echo -e "\033[33m好的~\033[0m"
else 
printf "\033[1;31;40m笨蛋,那重来吧\n\033[0m"
exit 0
fi
#为了避免端口,程序等冲突的现象。建议先查询Mysql的安装情况。如果自己系统安装了,建议将其卸载
rpm -qa | grep mysql
if [ $? -eq 0 ];then
                           yum -y remove mysql
         else
                          break
fi

echo 正在安装依赖环境
#ncurses是字符终端下屏幕控制的基本库,在TTY终端登录到主机mysql上需要的依赖包。
yum -y install ncurses-base &>>/dev/null
yum -y install ncurses-libs &>>/dev/null
yum -y install ncurses-devel &>>/dev/null
echo -e "\033[32m依赖环境安装完毕\033[0m"

#cmake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。生成标准的建构档(c语言的make)
echo 正在安装cmake工具,过程很长请耐心等待
tar zxvf cmake-2.8.6.tar.gz -C /usr/src/ &>/dev/null
cd /usr/src/cmake-2.8.6/
./configure gmake &>/dev/null
gmake install &>/dev/null
echo -e "\033[32mcmake工具安装完毕\033[0m"
cd

printf "\033[1;31;40m正在准备mysql中...\033[0m"
tar -zxvf mysql-5.6.36.tar.gz -C /usr/src/ &>/dev/null
cd /usr/src/mysql-5.6.36/
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/opt/data -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all &>/dev/null
<<COMMAND
选项解释:
-DCMAKE_INSTALL_PREFIX:指定安装路径
-DMYSQL_DATADIR:数据库目录
-DSYSCONFDIR:指定初始化参数文件目录
-DWITH_MYISAM_STORAGE_ENGINE:存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE:存储引擎
-DMYSQL_UNIX_ADDR:指定套接字路径
-DMYSQL_TCP_PORT:端口
-DENABLED_LOCAL_INFILE:允许从本地导入数据
-DWITH_PARTITION_STORAGE_ENGINE:静态存储引擎
-DDEFAULT_CHARSET:指定默认使用的字符集编码,如utf8。 
-DDEFAULT_COLLATION:指定默认使用的字符集校对规则,utf8_general_ci是适用于UTF-8字符集的通用规则。(指定校验字符串)
-DWITH_EXTRA_CHARSETS:指定额外支持的其他字符集编码。
-DDOWNLOAD_BOOST=1:在线下载支持C语言的包
-DWITH_BOOST=/usr/local/boost:指定boost下载位置
COMMAND
echo -e "\033[31m正在编译并安装...过程时间很长,去玩会游戏或追剧去吧(#^.^#)\033[0m"
make &>/dev/null
make install &>/dev/null
echo -e "\033[32mMYSQL编译安装成功\033[0m"
cd

#修改主配置文件
cat > /etc/my.cnf <<FOF
[mysqld]
datadir=/usr/local/mysql/data  
socket=/usr/local/mysql/mysql.sock


[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/usr/local/mysql/data/lala.pid
FOF
#初始化mysql
useradd -M -s /sbin/nologin mysql 
echo -e "\033[33m正在初始化数据库,马上就完成了\033[0m"
echo 正在安装perl运行组件和运行环境:
yum -y install perl &>/dev/null
yum -y install perl-devel &>/dev/null
yum -y install perl-DBD*  &>/dev/null
cd /usr/local/mysql/scripts/
./mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql &>/dev/null
echo -e "\033[31m初始化数据库:\033[0m"
#链接二进制文件
ln -s /usr/local/mysql/bin/* /usr/bin/
#链接头文件,辅助文件
ln -s /usr/local/mysql/include/* /usr/include/
#链接库文件
ln -s /usr/local/mysql/lib/* /usr/lib
#现在还不能启动,因为mysqld还没有在/etc/init.d  /etc/rc.d/init.d
cd /usr/src/mysql-5.6.36/support-files/
cp mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chown -R mysql.mysql /usr/local/mysql/
cat > /usr/lib/systemd/system/mysql.service <<FOF
[Unit]
Description=MySQL Server
After=network.target

[Service]
User=mysql
Group=mysql
Type=forking
PIDFile=/usr/local/mysql/data/wyh.pid
ErecStart=/etc/init.d/mysqld start
FOF

/etc/init.d/mysqld start
if [ $? -eq 0 ];then
        echo -e "  MYSQL服务   \033[32m 启动成功 \033[0m    "
else
        echo -e "  MYSQL服务    \033[31m 启动失败 \033[0m    "
fi
echo -e "\033[34m正在登陆MySQL...\033[0m" 
mysql

<<COMMAND
给root用户设置密码
mysqladmin -u root password     #给root用户第一次设置密码

修改数据库用户root密码(在命令行修改,而不是在mysql>
mysqladmin -u root -p password 123456
Enter password: (原来的密码,若原来密码为空,则直接回车即可)
COMMAND

最近博主还在学习状态,抱歉这么晚才出MySQL脚本~

加油,奥利给
圣诞快乐

### 回答1: 以下是一个简单的 Shell 脚本,可以在 Linux 系统上一键安装 MySQL 数据库: ``` #!/bin/bash # 安装 MySQL sudo apt-get update sudo apt-get install -y mysql-server # 配置 MySQL sudo mysql_secure_installation ``` 使用前请先将文件保存为 `install_mysql.sh`,然后给该文件执行权限: ``` chmod +x install_mysql.sh ``` 接着在终端中执行该脚本即可完成 MySQL安装和配置。请注意,在执行该脚本之前,建议先备份重要数据,以免发生意外情况。 ### 回答2: Shell脚本是一种用于运行Unix或Linux系统命令的脚本语言。与其他编程语言相比,Shell脚本比较简单,易于学习,并且较为常用。因此,在自动化服务器配置和部署中,Shell脚本可以节省大量时间和人力成本。本文将介绍如何使用Shell脚本一键安装MySQLMySQL是一个流行的关系型数据库管理系统(RDBMS),由Oracle公司开发。它是开源的,免费使用,并广泛用于Web应用程序和企业信息系统中。MySQL支持多种操作系统,如Linux和Unix等,并提供了多种编程接口,如PHP和Python等。但是,在安装MySQL时,需要进行多项配置选项,例如安装路径和管理员密码,这些选项都需要用户手动输入配置。为了避免这样的繁琐操作,可以编写一个Shell脚本一键安装MySQL。 以下是一键安装MySQLShell脚本的步骤: 1.首先,下载MySQL安装程序。可以从MySQL官方网站下载最新的二进制安装包,并将其保存在本地目录中。 2.在Shell脚本中使用变量来保存MySQL安装路径和管理员密码。例如: MYSQL_INSTALL_PATH="/usr/local/mysql" MYSQL_ADMIN_USERNAME="root" MYSQL_ADMIN_PASSWORD="password" 3.接下来,在脚本中使用wget命令来下载MySQL安装程序,并解压缩: cd /tmp wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm rpm -ivh mysql80-community-release-el7-1.noarch.rpm yum install mysql-community-server -y 4.随后,配置MySQL,包括修改配置文件my.cnf文件的部分参数,如字符集以及配置文件路径: cp /usr/my.cnf /etc/ echo "[client]" >> /etc/my.cnf echo "socket=/tmp/mysql.sock" >> /etc/my.cnf echo "[mysql]" >> /etc/my.cnf echo "socket=/tmp/mysql.sock" >> /etc/my.cnf echo "default-character-set=utf8mb4" >> /etc/my.cnf echo "[mysqld]" >> /etc/my.cnf echo "user=mysql" >> /etc/my.cnf echo "datadir=/mysql/data" >> /etc/my.cnf echo "default-character-set=utf8mb4" >> /etc/my.cnf 5.将MySQL的bin目录添加到PATH环境变量中: echo 'export PATH=$PATH:/usr/sbin/:/usr/local/mysql/bin' >> /etc/profile source /etc/profile 6.配置MySQL键盘输入: systemctl start mysqld.service mysql_secure_installation << EOF n n y y y y EOF 7.最后,使用管理员密码登录MySQL,并更改管理员密码: mysql -u${MYSQL_ADMIN_USERNAME} -p${MYSQL_ADMIN_PASSWORD} -e "SET PASSWORD FOR '${MYSQL_ADMIN_USERNAME}'@'localhost' = PASSWORD('new_password');" 以上就是一键安装MySQLShell脚本的步骤。使用这个脚本,可以自动地下载和安装MySQL,并配置MySQL的基本参数。当然,如果需要更具体的配置,还需要手动修改配置文件。但是,这个脚本可以节省大量时间和人力成本,并使MySQL安装过程更加便捷和简单。 ### 回答3: Shell脚本是一种经过编写的命令集合,可以通过一系列命令来完成一定的功能。在安装MySQL时,可以编写Shell脚本来自动完成安装过程,从而提高效率和便捷性。 下面是在Linux系统中使用Shell脚本一键安装MySQL的步骤: 1. 下载MySQL安装包并解压缩 在官网下载MySQL安装包,将其上传至Linux服务器上,并使用tar命令进行解压缩。 2. 编写Shell脚本文件 - 使用vi编辑器创建一个名为install_mysql.sh的文件,命令如下: $ vi install_mysql.sh - 输入以下内容: #!/bin/bash VERSION="mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz" INSTALL_DIR="/opt/mysql" MYSQL_DIR=${INSTALL_DIR}"/"${VERSION%"-linux-glibc2.12-x86_64.tar.gz"} echo "---- Unpack ${VERSION} ----" tar -zxvf ${VERSION} echo "---- Install dependencies ----" yum install -y libaio echo "---- Config ${MYSQL_DIR} ----" ${MYSQL_DIR}/bin/mysqld --initialize --user=mysql --basedir=${MYSQL_DIR} --datadir=${MYSQL_DIR}/data echo "---- Install mysql to ${INSTALL_DIR} ----" mkdir -p ${INSTALL_DIR} mv ${VERSION} ${INSTALL_DIR} rm -rf ${VERSION} echo "---- Add mysql service ----" ln -s ${MYSQL_DIR}/support-files/mysql.server /etc/init.d/mysql echo "---- Start mysql service ----" service mysql start echo "---- Set mysql root password ----" ${MYSQL_DIR}/bin/mysql_secure_installation - 以上脚本用于安装并启动MySQL服务。其中,VERSION变量定义为MySQL安装包名,INSTALL_DIR变量定义为MySQL安装目录,MYSQL_DIR变量定义为MySQL解压缩后的目录。 - 脚本执行的功能包括解压缩MySQL安装包、安装MySQL所需要的依赖库、初始化MySQL配置、移动MySQL文件夹、设置MySQL服务以及设置MySQL root密码等。 3. 运行Shell脚本 - 修改Shell脚本文件的权限,命令如下: $ chmod +x install_mysql.sh - 运行Shell脚本文件,命令如下: $ ./install_mysql.sh - 执行完毕后,MySQL就会被安装并启动,可以通过MySQL Workbench等工具来进行数据库管理。 通过使用Shell脚本自动安装MySQL,不仅可以提高效率,还可以减少手动安装时可能出现的错误,提高安装效果的稳定性和可靠性。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

星光落入你灰蒙蒙的眼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值