源码安装MySQL-5.7.38的脚本

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 源码安装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) 还有一个并不能称之为隐患的小问题就是源码编译安装将使安装部署过程更为复杂,所花费的时间更长}

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4月前
|
SQL 监控 关系型数据库
MySQL优化: CPU高 处理脚本 pt-kill脚本
MySQL优化: CPU高 处理脚本 pt-kill脚本
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
120 3
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。
本文介绍了在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。内容涵盖准备工作、下载源码、编译安装、配置服务、登录设置及实践心得,帮助读者根据需求选择最适合的安装方法。
98 2
|
2月前
|
SQL 关系型数据库 MySQL
|
2月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置服务等,并与使用 RPM 包安装进行了对比,帮助读者根据需求选择合适的方法。编译源码安装虽然复杂,但提供了更高的定制性和灵活性。
295 2
|
2月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤
【10月更文挑战第7天】本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据自身需求选择合适的方法。
65 3
|
1月前
|
SQL 关系型数据库 MySQL
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
35 0
|
3月前
|
SQL 关系型数据库 MySQL
MySQL数据库中给表添加字段并设置备注的脚本编写
通过上述步骤,你可以在MySQL数据库中给表成功添加新字段并为其设置备注。这样的操作对于保持数据库结构的清晰和最新非常重要,同时也帮助团队成员理解数据模型的变化和字段的具体含义。在实际操作中,记得调整脚本以适应具体的数据库和表名称,以及字段的详细规范。
89 8
|
4月前
|
存储 关系型数据库 MySQL
实战!MySQL主从复制一键搭建脚本分享
实战!MySQL主从复制一键搭建脚本分享
98 2
|
4月前
|
关系型数据库 MySQL Shell
MySQL数据库一键安装脚本,适合任何版本
MySQL数据库一键安装脚本,适合任何版本
169 2