源码安装MySQL-5.7.38的脚本

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 源码安装MySQL-5.7.38的脚本

这是我写的一个MySQL源码安装的脚本,采用菜单模式,根据提示,贴和自己的环境,进行下载。反复修改,运行无误,分享出来,脚本如下:

#!/bin/bash
#
#Author: chenjiao
color_red="echo -e \033[31m"
color_green="echo -e \033[32m"
colorEnd="\033[0m"
menu(){
cat << EOF
1 已有源码,直接编译安装
2 下载源码,直接编译安装
3 清除环境(慎用)
4 安装编译所需工具
5 初始化生成密码
q 正常退出
EOF
read -p "请输入选项: " choose
}
clear_env (){
yum remove -y mariadb* mysql* &> /dev/null
find / -iname "*mysql*" |xargs rm -rf 
setenforce 0 &> /dev/null
sed -ri '/^SELINUX=/cSELINUX=disabled' /etc/selinux/config
systemctl  disable --now firewalld
id mysql &> /dev/null && userdel -r mysql 2> /dev/null
useradd -r -s /sbin/nologin -M mysql  &> /dev/null
rm -rf /usr/local/mysql/ 
mkdir /usr/local/mysql/
$color_green已删除原有数据库和mysql文件,已关闭selinux和firewalld,已新建mysql用户和/usr/local/mysql文件夹$colorEnd
}
install_tools (){
yum install -y ncurses-devel cmake gcc perl-Data-Dumper gcc-c++ git openssl-devel make > /dev/null  && $color_green编译工具已安装...$colorEnd ||  $color_red安装工具失败,请检查网络或yum$colorEnd
}
mysql_source1 (){
read -p "请输入你的源码包地址和名称:" mysql_pkg
mv $mysql_pkg /usr/local/mysql/mysql.tar.gz &> /dev/null && $color_green检测到源码包准备开始编译...$colorEnd || $color_red未找到源码,请检查重来...$colorEnd 
}
mysql_source2 (){
wget https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/mysql-boost-5.7.38.tar.gz --no-check-certificate -O /usr/local/mysql/mysql.tar.gz
}
code_install (){
tar xf  /usr/local/mysql/mysql.tar.gz -C /usr/local/mysql/
cd /usr/local/mysql/mysql-5.7.38/
cmake . \
-DWITH_BOOST=boost/boost_1_59_0/ \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DINSTALL_MANDIR=/usr/share/man \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1
$color_greencmake完成,准备make...$colorEnd && make install 
}
init_mysql (){
cd /usr/local/mysql && mkdir mysql-files && chown -R mysql.mysql  /usr/local/mysql 
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data   2>&1 | awk '/temporary password is generated/{print $NF}'   # 这里将初始化的输出转化为标准输出再用awk之间截取出密码
/usr/local/mysql/bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
}
while true;do
    menu
    case  $choose in
    1) mysql_source1
       code_install;;
    2) mysql_source2
       code_install;;
    3) clear_env;;
    4) install_tools;;
    5) init_mysql;;
    q) $color_green正常退出...$colorEnd && exit;;
    *) $color_red输入有误,请检查重来...$colorEnd ;;
    esac
done

注:初始化mysql时候,初始密码会出现在屏幕中

以下是引用云计算机磊哥一些话:

{源码安装

与二进制(RPM)发行版本相比,如果我们选择了通过源代码进行安装,那么在安装过程中我们能够对MySQL

所做的调整将会更多更灵活一些。因为通过源代码编译我们可以:

a) 针对自己的硬件平台选用合适的编译器来优化编译后的二进制代码;

b) 根据不同的软件平台环境调整相关的编译参数;

c) 针对我们特定应用场景选择需要什么组件不需要什么组件;

d) 根据我们的所需要存储的数据内容选择只安装我们需要的字符集;

e) 同一台主机上面可以安装多个MySQL;

f) 等等其他一些可以根据特定应用场景所作的各种调整。


在源码安装给我们带来更大灵活性的同时,同样也给我们带来了可能引入的隐患:

a) 对编译参数的不够了解造成编译参数使用不当可能使编译出来的二进制代码不够稳定;

b) 对自己的应用环境把握失误而使用的优化参数可能反而使系统性能更差;

c) 还有一个并不能称之为隐患的小问题就是源码编译安装将使安装部署过程更为复杂,所花费的时间更长}

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
关系型数据库 MySQL Shell
shell学习(十七) 【mysql脚本备份】
shell学习(十七) 【mysql脚本备份】
14 0
|
2月前
|
关系型数据库 MySQL Linux
【有关mysql定时备份脚本文件】
【有关mysql定时备份脚本文件】
20 0
|
5月前
|
安全 关系型数据库 MySQL
Linux 实用小脚本系列(2)----mysql安全初始化脚本的免交互执行--mysql_secure_installation
Linux 实用小脚本系列(2)----mysql安全初始化脚本的免交互执行--mysql_secure_installation
58 0
|
1月前
|
关系型数据库 MySQL Linux
Linux系统使用定时脚本备份mysql
Linux系统使用定时脚本备份mysql
|
16天前
|
关系型数据库 MySQL Shell
备份 MySQL 的 shell 脚本(mysqldump版本)
【4月更文挑战第28天】
24 0
|
6天前
|
关系型数据库 MySQL Shell
在Centos7中利用Shell脚本:实现MySQL的数据备份
在Centos7中利用Shell脚本:实现MySQL的数据备份
|
8天前
|
SQL 关系型数据库 MySQL
【简单无脑】自动化脚本一键安装虚拟机下的MySQL服务
该文章提供了在虚拟机上安装MySQL服务的简化方法,特别是针对新手。作者提供了一个自动化脚本`install_mysql.sh`,使得安装过程更简单。用户需要下载`install.rpm`资源,将其放在指定目录下,然后创建并编辑脚本文件,将提供的代码粘贴进去,通过`chmod u+x`授权,最后运行脚本`./install_mysql.sh [rpm文件路径]`来安装MySQL。文章还附有相关图片说明。
25 1
【简单无脑】自动化脚本一键安装虚拟机下的MySQL服务
|
8天前
|
SQL 缓存 关系型数据库
MySQL常见问题解决和自动化安装脚本
这篇内容包含了两个主要部分:解决MySQL登录问题和处理GPG密钥问题。当MySQL密码正确但无法登录时,可以通过执行SQL命令`ALTER USER`和`flush privileges`来修改和重置密码。对于MySQL安装时的GPG密钥错误,首先需要强制删除旧的MySQL仓库包,导入新的GPG公钥,然后安装MySQL服务器。如果遇到GPG检查错误,可以使用`--nogpgcheck`参数忽略检查来安装。最后,提供了一个自动化安装MySQL的脚本,用于检查旧版本、卸载残留、安装MySQL8并启动服务。
22 1
MySQL常见问题解决和自动化安装脚本
|
14天前
|
弹性计算 关系型数据库 MySQL
离线安装二进制Mysql脚本
【4月更文挑战第30天】
12 1
|
14天前
|
DataWorks 安全 关系型数据库
DataWorks产品使用合集之在 DataWorks 中使用数据集成从 MySQL 导入数据到 GDB 执行同步任务脚本的步骤如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
23 0