zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

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

mysql数据库安装shell 脚本 一键 -----
2023-09-14 09:15:21 时间

基础知识

MySQL源码包下载教程
源码包下载地址
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择 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笨蛋,那重来吧\033[0m"
echo ""
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

I tried to run, in order to catch up with that had been high expectations of their own!