#!/bin/bash

#配置数据库要安装的目录,可以根据自己的安装路径修改PATHDIR
PATHDIR="/project"
BASEDIR="$PATHDIR/mysql"
DATADIR="$BASEDIR/data"
#判断3306端口是否被占用
netstat -an | grep 3306 2>&1 > /dev/null
if [ $? -eq 0 ];then
echo -e "\033[5;31m 3306端口已经被使用... \033[0m"
exit 1
else
echo -e "\033[32m 准备安装...\033[0m"
fi
#创建mysql用户组和用户
groups mysql > /dev/null 2>&1
if [ $? -eq 0 ];then
echo "mysql用户组已经存在"
else
groupadd mysql
fi

id mysql >/dev/null 2>&1

if [ $? -eq 0 ];then
echo "mysql用户存在"
else
useradd -r -g mysql -s /bin/false mysql
fi

#备份mysql的配置文件
mv /etc/my.cnf /etc/my.cnf.backup >/dev/null 2>&1
cat >>/etc/my.cnf <<eof
[mysqld]
basedir=$BASEDIR
datadir=$DATADIR
eof

#解压mysql安装包
tar -xf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz -C $PATHDIR >/dev/null 2>&1

if [ $? -eq 0 ];then
echo -e "\033[32m 解压完成\033[0m"
else
echo -e "\033[31m 解压失败...\033[0m"
exit 1
fi
#移动解压包到安装目录下
mv $PATHDIR/mysql-5.7.26-linux-glibc2.12-x86_64 $BASEDIR >/dev/null 2>&1
#配置mysql环境变量
echo -e 'MYSQL=/project/mysql/bin\nexport PATH=$PATH:$MYSQL' >/etc/profile.d/mysql.sh
source /etc/profile.d/mysql.sh
if [ $? -eq 0 ];then
echo -e "\033[32m 环境变量配置成功,请稍等...\033[0m"
else
echo -e "\033[31m 环境变量配置失败...\033[0m"
exit 1
fi

#创建mysql的data目录
mkdir -pv $BASEDIR/data/
chown -R mysql:mysql $DATADIR
#初始化数据库,并将初始化结果存入tmp.txt文件中(初始化的密码在文件中,后面修改密码会用到)
mysqld --initialize --user=mysql --basedir=$BASEDIR --datadir=$DATADIR > $PATHDIR/tmp.txt 2>&1

#启动mysql服务,将mysql设置为systemd守护进程
cp $BASEDIR/support-files/mysql.server /etc/init.d/mysql

cat >/lib/systemd/system/mysql.service <<eof
[Unit]
Description=mysql
After=network.target
[Service]
Type=forking
ExecStart=/etc/init.d/mysql start
ExecReload=/etc/init.d/mysql restart
ExecStop=/etc/init.d/mysql stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
eof

echo -e "\033[32m 正在启动mysql服务,请稍等..\033[0m"
systemctl daemon-reload
systemctl start mysql.service
if [ $? -eq 0 ];then
echo -e "\033[32m mysql服务启动成功\033[0m"
else
echo -e "\033[5;31m mysql服务启动失败...\033[0m"
exit 1
fi
#请输入mysql修改的密码
read -p "初始化数据库mysql的密码,请输入您的数据库新密码:" PASSW
#修改mysql密码
cat tmp.txt|sed -n "$ p"|awk '{print $NF}'|xargs -i mysqladmin -uroot -h 127.0.0.1 -p"{}" password "$PASSW"
if [ $? -eq 0 ];then
echo -e "\033[5;32m 新密码设置成功,请妥善保管\033[0m"
else
echo -e "\033[5;31m 新密码设置失败\033[0m"
exit 1
fi

Centos7.+系统,二进制包脚本安装Mysql的更多相关文章

  1. liunx系统二进制包安装编译mysql数据库

    liunx系统二进制包安装编译mysql数据库 # 解压二进制压缩包 [root@localhost ~]# tar xf mysql-5.5.32-linux2.6-x86_64.tar.gz -C ...

  2. centos 6x系统下源码安装mysql操作记录

    在运维工作中经常部署各种运维环境,涉及mysql数据库的安装也是时常需要的.mysql数据库安装可以选择yum在线安装,但是这种安装的mysql一般是系统自带的,版本方面可能跟需求不太匹配.可以通过源 ...

  3. 在CentOS7中利用yum命令安装mysql

    在CentOS7中利用yum命令安装mysql 原创 2016年08月31日 10:42:33 标签: mysql / centos 4832 一.说明 我们是在VMware虚拟机上安装的mysql, ...

  4. CentOS 7.2使用源码包编译安装MySQL 5.7.22及一些操作

    CentOS 7.2使用源码包编译安装MySQL 5.7.22及一些操作 2018年07月05日 00:28:38 String峰峰 阅读数:2614   使用yum安装的MySQL一般版本比较旧,但 ...

  5. Centos7 系统初试化脚本

    系统初始化设置 # 设置主机名,永久修改,再次登陆生效 hostnamectl set-hostname xxxxx # 安装eprl源,常用命令 yum install -y wget && ...

  6. 二进制方式快速安装MySQL数据库命令集合

    二进制方式快速安装MySQL数据库命令集合 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1.安装mysql ls mysql ...

  7. CentOS7下通过rpm方式安装MySQL及插入中文问题解决 [原创]

    一 CentOS下通过rpm方式安装MySQL CentOS版本:CentOS-7 MySQL版本:MySQL-5.6.22 在网上搜了一下,Linux下安装MYSQL有三种方式: 1) 通过yum命 ...

  8. MariaDB二进制包简单安装部署

    一.简介: MySQL最早是由Michael Widenius在所研发,而在后来Michael先生以10亿美元的价格把MySQL卖给了SUN以后不久SUN就被Oracle公司给收购了,在Oracle收 ...

  9. MySQL5.7 基于二进制包的安装

    1.MySQL5.7安装注意事项 1.在MySQL5.7中mysql_install_db已经不再推荐使用,建议改成mysqld-initialize 完成实力初始化.(mysql_install_d ...

随机推荐

  1. HDU 1754 I Hate It(线段数-单点更新)

    原题链接:I Hate It 题目分析:这个是线段树的基本操作--更新和查询,属于基础题,也就相当于一个模板吧,这里就不再多说了. 代码如下:(PS:特别注意--输入输出用  不然会超时) #incl ...

  2. 【Java常用类】Calendar

    Calendar日历类 实例化 方法一 创建其子类**(GregorianCalendar)**的对象 方法二 调用其静态方法getInstance() Calendar instance = Cal ...

  3. linux目录作用

    / 根目录 /bin 命令保存目录(普通用户就可以使用的命令) /sbin 命令保存目录(超级用户才能使用的命令) /boot 启动目录,启动相关文件 /dev 设备文件保存目录 /etc 配置文件保 ...

  4. Java 异步 I/O

    Java 中的异步 I/O 简称 AIO, A 即 Asynchronous.AIO 在 JDK1.7 时引入,基于操作系统提供的异步 I/O 通信模型,封装了一些进行异步 I/O 操作的 API. ...

  5. 2021年SpringBoot面试题200道及答案

    https://blog.csdn.net/yanpenglei/article/details/120822218 https://blog.csdn.net/ldb987/article/deta ...

  6. Asp-Net-Core开发笔记:接口返回json对象出现套娃递归问题

    前言 看了下推送记录,一个月前,OK,我又变成月更了o(╯□╰)o,这绝对不行![○・`Д´・ ○] 所以今天来更新了 其实不是我懒得更新或者是太忙,其实是最近在写一篇很长的博客,一直没写完( Ĭ ^ ...

  7. postgresql dba常用sql查询语句

    查看帮助命令 DB=# help --总的帮助 DB=# \h --SQL commands级的帮助 DB=# \? --psql commands级的帮助 \dn[S+] [PATTERN],其中[ ...

  8. JVM 问题分析思路

    1. 前言 工作中有可能遇到 java.lang.OutOfMemoryError: Java heap space 内存溢出异常, 本文提供一些内存溢出的分析及解决问题的思路. 常见异常如下: 20 ...

  9. maven的三种项目打包方式----jar,war,pom

    1.pom工程:**用在父级工程或聚合工程中.用来做jar包的版本控制.必须指明这个聚合工程的打包方式为pom 2.war工程:将会打包成war,发布在服务器上的工程.如网站或服务.在SpringBo ...

  10. Td 内容不换行,超过部分自动截断,用...表示

    转载请注明来源:https://www.cnblogs.com/hookjc/ <table width="200px" style="table-layout:f ...