【linux】分享一个安装mysql的脚本[续篇]

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 【linux】分享一个安装mysql的脚本[续篇]

之前写了个 426.【数据库】centos 7系统,二进制方式安装mysql ,很喜欢用二进制装mysql的方法,现在这个需求又出来了,我要装一个mysql在服务器上,于是乎,就想着这次把整个安装步骤,写出一个脚本出来。

直接上脚本:



#!/bin/bash
#Program:
# setup mysql
#History:
#2023/02/26 junfenghe.cloud@qq.com version:0.0.1
path=/bin:/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:~/bin
export path
if [ -n "$1" ]
then
    echo "mysql will be installed in $1"
else
    echo "Please input path which mysql will be installed."
    echo "eg: $0 /usr/local"
    exit -1
fi
type 'mysql'
if [ $? -eq 0 ]
then
    echo 'mysql has installed'
    echo 'please uninstall mysql such as: check /var/lib/mysql  && /etc/profile && /etc/init.d/mysql.server && /var/log/mariadb'
    exit -1
fi
bin=$(dirname ${BASH_SOURCE-$0})
bin=$(cd $bin ; pwd)
cd $bin
file_mysql=mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz
path_mysql=`echo $file_mysql | awk -F '.tar' '{print $1}'`
path_mysql_full="$(cd $1 ; pwd)/$path_mysql"
export PATH=$PATH:tmp/mysql-8.0.31-linux-glibc2.12-x86_64/bin
msg_info="[INFO]"
# check if exists group:mysql
echo '@Step1 -> groupadd mysql'
if_exists_group_mysql=$(cat /etc/group| grep mysql)
if [ -n "${if_exists_group_mysql}" ]
then
    echo ${msg_info}' group:mysql exists.'
else
    groupadd mysql
    echo ${msg_info}' groupadd mysql ok.'
fi
if_exists_user_mysql=$(cat /etc/shadow | grep mysql)
if [ -n "${if_exists_user_mysql}" ]
then
    echo ${msg_info}‘ group:mysql exists’
else
    useradd -r -g mysql -s /bin/false mysql
    echo ${msg_info} ' useradd -r -g mysql -s /bin/false mysql ok'
fi
if [ -f $file_mysql ]
then
    echo "exist "$file_mysql
else
    wget "https://downloads.mysql.com/archives/get/p/23/file/$file_mysql"
fi
tar -xvf $file_mysql -C $1/
cd $1/$path_mysql
mkdir -p mysql-files
chown mysql:mysql mysql-files
chmod 750 mysql-files
yum install -y libaio
./bin/mysqld --initialize --user=mysql
./bin/mysql_s之前 写了个 [426.【数据库】centos 7系统,二进制方式安装mysql](https://www.jianshu.com/p/f391c72ea730?v=1677768474275) ,很喜欢用二进制装mysql的方法,现在这个需求又出来了,我要装一个mysql在服务器上,于是乎,就想着这次把整个安装步骤,写出一个脚本出来。
直接上脚本:
~~~shell
#!/bin/bash
#Program:
# setup mysql
#History:
#2023/02/26 junfenghe.cloud@qq.com version:0.0.1
path=/bin:/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:~/bin
export path
if [ -n "$1" ]
then
    echo "mysql will be installed in $1"
else
    echo "Please input path which mysql will be installed."
    echo "eg: $0 /usr/local"
    exit -1
fi
type 'mysql'
if [ $? -eq 0 ]
then
    echo 'mysql has installed'
    echo 'please uninstall mysql such as: check /var/lib/mysql  && /etc/profile && /etc/init.d/mysql.server && /var/log/mariadb'
    exit -1
fi
bin=$(dirname ${BASH_SOURCE-$0})
bin=$(cd $bin ; pwd)
cd $bin
file_mysql=mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz
path_mysql=`echo $file_mysql | awk -F '.tar' '{print $1}'`
path_mysql_full="$(cd $1 ; pwd)/$path_mysql"
export PATH=$PATH:tmp/mysql-8.0.31-linux-glibc2.12-x86_64/bin
msg_info="[INFO]"
# check if exists group:mysql
echo '@Step1 -> groupadd mysql'
if_exists_group_mysql=$(cat /etc/group| grep mysql)
if [ -n "${if_exists_group_mysql}" ]
then
    echo ${msg_info}' group:mysql exists.'
else
    groupadd mysql
    echo ${msg_info}' groupadd mysql ok.'
fi
if_exists_user_mysql=$(cat /etc/shadow | grep mysql)
if [ -n "${if_exists_user_mysql}" ]
then
    echo ${msg_info}‘ group:mysql exists’
else
    useradd -r -g mysql -s /bin/false mysql
    echo ${msg_info} ' useradd -r -g mysql -s /bin/false mysql ok'
fi
if [ -f $file_mysql ]
then
    echo "exist "$file_mysql
else
    wget "https://downloads.mysql.com/archives/get/p/23/file/$file_mysql"
fi
tar -xvf $file_mysql -C $1/
cd $1/$path_mysql
mkdir -p mysql-files
chown mysql:mysql mysql-files
chmod 750 mysql-files
yum install -y libaio
./bin/mysqld --initialize --user=mysql
./bin/mysql_ssl_rsa_setup
mkdir -p /var/log/mariadb
touch /var/log/mariadb/mariadb.log
chown -R mysql:mysql /var/log/mariadb
./bin/mysqld_safe --user=mysql & 
#sed -i "s/basedir=\$/basedir=$(pwd)/g" support-files/mysql.server
#sed -i "s/datadir=\$/basedir=$(pwd)\/data/g" support-files/mysql.server
cp support-files/mysql.server /etc/init.d/mysql.server
echo "export PATH=\$PATH:$path_mysql_full/bin" >> /etc/profile
source /etc/profile
echo 'Successfully!!!'
echo 'you can execute  [/etc/init.d/mysql.server start] to start mysql'
exit 0


  • 推荐执行的命令:./scripts.sh '/usr/local/mysql'
  • 整个安装脚本是上一篇文章的完整命令整合的
  • 脚本执行完毕之后,切记屏幕上会出现初始的root密码,不要看漏了,不然登录不上会有点麻烦,然后根据提示执行:/etc/init.d/mysql.server start  即可启动mysql。
  • 如果启动有问题,可以根据脚本去修改 /etc/init.d/mysql.server





相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
6天前
|
Linux
手把手教会你安装Linux系统
手把手教会你安装Linux系统
|
2天前
|
JSON JavaScript Linux
Linux系统之安装cook菜谱工具
【10月更文挑战第15天】Linux系统之安装cook菜谱工具
11 2
Linux系统之安装cook菜谱工具
|
4天前
|
Ubuntu Linux 测试技术
Linux系统之Ubuntu安装cockpit管理工具
【10月更文挑战第13天】Linux系统之Ubuntu安装cockpit管理工具
25 4
Linux系统之Ubuntu安装cockpit管理工具
|
5天前
|
关系型数据库 MySQL Linux
Docker安装Mysql5.7,解决无法访问DockerHub问题
当 Docker Hub 无法访问时,可以通过配置国内镜像加速来解决应用安装失败和镜像拉取超时的问题。本文介绍了如何在 CentOS 上一键配置国内镜像加速,并成功拉取 MySQL 5.7 镜像。
52 2
Docker安装Mysql5.7,解决无法访问DockerHub问题
|
5天前
|
Linux 网络安全 数据安全/隐私保护
Linux系统之Centos7安装cockpit图形管理界面
【10月更文挑战第12天】Linux系统之Centos7安装cockpit图形管理界面
24 1
Linux系统之Centos7安装cockpit图形管理界面
|
5天前
|
SQL Oracle 关系型数据库
安装最新 MySQL 8.0 数据库(教学用)
安装最新 MySQL 8.0 数据库(教学用)
33 4
|
6天前
|
Ubuntu 关系型数据库 MySQL
Linux系统MySQL安装
【10月更文挑战第19天】本文介绍了在 Linux 系统上安装 MySQL 的步骤,包括安装前准备、安装 MySQL、启动 MySQL 服务、配置 MySQL 以及验证安装。适用于 Ubuntu/Debian 和 CentOS/Fedora 系统,提供了详细的命令示例。
|
11天前
|
Linux 数据安全/隐私保护 Windows
命令方式:window向linux传文件
【10月更文挑战第6天】本文介绍了如何在Linux系统中通过命令`ip a`获取IP地址,并在Windows系统下使用CMD命令行工具和SCP命令实现文件传输。示例展示了如何将D盘中的`mm.jar`文件上传至IP地址为192.168.163.122的Linux系统的/up/目录下,最后在Linux系统中确认文件传输结果。
167 65
|
3天前
|
安全 Linux
Linux系统之lsof命令的基本使用
【10月更文挑战第14天】Linux系统之lsof命令的基本使用
25 2
Linux系统之lsof命令的基本使用
|
11天前
|
Web App开发 网络协议 Linux
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】
这篇文章是关于Linux命令的总结,涵盖了从基础操作到网络配置等多个方面的命令及其使用方法。
36 1
linux命令总结(centos):shell常用命令汇总,平时用不到,用到就懵逼忘了,于是专门写了这篇论文,【便持续更新】