【linux】分享一个安装mysql的脚本

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 【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_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




相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
4月前
|
Ubuntu Linux
计算机基础知识:linux系统怎么安装?
在虚拟机软件中创建一个新的虚拟机,并选择相应操作系统类型和硬盘空间大小等参数。将下载的 ISO 镜像文件加载到虚拟机中。启动虚拟机,进入安装界面,并按照步骤进行安装。安装完成后,可以在虚拟机中使用 Linux 系统。
|
2月前
|
安全 Linux iOS开发
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
174 6
Nessus Professional 10.10 Auto Installer for RHEL 10, AlmaLinux 10, Rocky Linux 10 - Nessus 自动化安装程序
|
3月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
|
Ubuntu Linux 网络安全
Linux系统初始化脚本
一款支持Rocky、CentOS、Ubuntu、Debian、openEuler等主流Linux发行版的系统初始化Shell脚本,涵盖网络配置、主机名设置、镜像源更换、安全加固等多项功能,适配单/双网卡环境,支持UEFI引导,提供多版本下载与持续更新。
343 0
Linux系统初始化脚本
|
3月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
|
2月前
|
消息中间件 Kafka Linux
Linux下安装Kafka 3.9.1
本文介绍Kafka 3.9.1版本的安装与配置,包括通过ZooKeeper或KRaft模式启动Kafka。涵盖环境变量设置、日志路径修改、集群UUID生成、存储格式化及服务启停操作,适用于Linux环境下的部署实践。
292 0
|
4月前
|
网络协议 关系型数据库 Linux
【App Service Linux】在Linux App Service中安装 tcpdump 并抓取网络包
在App Service for Linux环境中,无法像Windows一样直接使用网络排查工具抓包。本文介绍了如何通过TCPDUMP在Linux环境下抓取网络包,包括SSH进入容器、安装tcpdump、执行抓包命令及下载分析文件的完整操作步骤。
218 5
|
4月前
|
弹性计算 安全 Linux
阿里云服务器ECS安装宝塔Linux面板、安装网站(新手图文教程)
本教程详解如何在阿里云服务器上安装宝塔Linux面板,涵盖ECS服务器手动安装步骤,包括系统准备、远程连接、安装命令执行、端口开放及LNMP环境部署,手把手引导用户快速搭建网站环境。
|
4月前
|
Ubuntu 安全 Linux
Linux这5款微型发行版,体积小+精简,比win7运行还快,值得安装
以上5款微型发行版体积小且精简,如果你有台旧电脑,不妨试试?