MySQL自动安装脚本8.0和5.0均可

server/2024/9/20 9:21:51/ 标签: mysql

准备工作:上传安装脚本和安装包到/soft目录或者其他空目录。

#!/bin/bash
echo "-----------------------------start  install--------------------------------------"
start_time=$(date +%s)
echo -e "input version,such as \e[31m8.0.27\e[0m"
read version
find / -name mysql | xargs rm -rf
port=$(netstat -antup|grep mysql|wc -l)
if [ $port != 0 ]
then echo "The MySQL process exists, please kill the process first"
ps -ef |grep mysqld
exit 1
fi
echo "--------Create the required directory and user, and upload the installation package-----------"
current_dir=$(pwd)
echo "current directory: $current_dir"
target_dir="/opt"
if [ ! -d "$target_dir" ]; thenmkdir -p "$target_dir"echo "target directory: $target_dir"
fi
mv $current_dir/* $target_dir
echo "copy complete to $target_dir"
mkdir -p  /data/mysql
groupadd mysql
useradd -r -g mysql mysql
cd /opt/
tar -xvf mysql-$version-linux-glibc2.12-x86_64.tar.gz
mv mysql-$version-linux-glibc2.12-x86_64/  /usr/local/
cd /usr/local/
mv mysql-$version-linux-glibc2.12-x86_64/ mysql
chown -R mysql.mysql /usr/local/mysql/
echo "-----------Uninstall the existing MySQL components---------------"
yum list installed | grep mariadb
yum -y remove mariadb*
yum remove mariadb*
chown mysql:mysql -R /data/mysql
touch /etc/my.cnf
chmod 644 /etc/my.cnf
MYSQL_ROOT_PASSWORD=123456
cat <<EOF >/etc/my.cnf
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
server_id=1
port=3306
character-set-server=utf8
innodb_rollback_on_timeout = ON
character-set-server = utf8
collation-server=utf8_general_ci
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
lower_case_table_names=1
max_connections=10000
sync_binlog=1
binlog_format=row
log-bin=mysql-bin
expire_logs_days=30
[mysql]
socket=/tmp/mysql.sock
default-character-set=utf8
[client]
EOF
echo "---------------Initialize Database--------------"
cd /usr/local/mysql/bin
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
path=$(grep 'MYSQL_HOME' /etc/profile|wc -l)
if [ $path !=  0 ]thenecho -e "\e[31m MYSQL_HOME  The path exists\e[0m"elseecho "export MYSQL_HOME=/usr/local/mysql/bin" >> /etc/profileecho "export PATH=\$PATH:\$MYSQL_HOME"        >> /etc/profilesource /etc/profile
fi
echo "-----------------------Start MYSQL service------------------------------"
service mysql start
echo 'export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib'>>/etc/profile
sleep 3
source /etc/profile
cat /data/mysql/mysql.err|grep password
chkconfig --add mysql
chkconfig mysql on
chkconfig --list mysql
echo "------------congratulations! MYSQL installation successful--------------"
end_time=$(date +%s)
execution_time=$((end_time - start_time))
echo "Script execution time:${execution_time} s"
MYSQL_OLDPASSWORD=`awk '/A temporary password/{print $NF}' /data/mysql/mysql.err`
mysqladmin  -uroot -p${MYSQL_OLDPASSWORD} password ${MYSQL_ROOT_PASSWORD}
mysql -uroot -p123456 -e "update mysql.user set host ='%' where user ='root';"
mysql -uroot -p123456 -e "flush privileges;"
mysql -uroot -p123456

注意事项:注意mysql安装包的名称格式,不同版本的安装包名称可能不通,注意修改脚本中安装包名称后缀。
1.根据安装包名称修改脚本中名称后缀

一个后缀是xz一个后缀是gz
mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz
mysql-5.7.41-linux-glibc2.12-x86_64.tar.gz

2.安装开始之后输入版本号就行了
在这里插入图片描述
3.注意修改脚本中MYSQL_ROOT_PASSWORD作为mysql数据库密码


http://www.ppmy.cn/server/114048.html

相关文章

记一次公有云遇到的bug(随手记)

概述 最近用某云做测试实践&#xff0c;在做到利用弹性负载均衡ELB和弹性伸缩AS时&#xff0c;遇到了由AS创建的主机加入到ELB后端主机组显示异常的问题。 大致拓扑如下&#xff1a; 实验过程 由于AS使用的镜像是由弹性云主机ECS创建镜像而来的私有镜像。一开始以为是该镜…

服务器环境搭建-6 Minio安装与使用介绍

背景 本文介绍Minio的搭建过程和使用方式&#xff0c;之后基于Minio给出一个Java使用案例。后续“基于Minio实现分片上传和断点续传”文章将以本文为基础。 1.Minio下载与安装 1.1 下载Minio #准备安装目录 mkdir -p /home/seong/minio/ cd /home/seong/minio/# 下载minio …

微信小程序-formData使用

作者&#xff1a;fyupeng 技术专栏&#xff1a;☞ https://github.com/fyupeng 项目地址&#xff1a;☞ https://github.com/fyupeng/distributed-blog-system-api 留给读者 一、介绍 在小程序中使用formdata上传数据&#xff0c;可实现多文件上传 跟浏览器中的FormData对象类…

Linux服务器Java启动脚本

Linux服务器Java启动脚本 1、初版2、优化版本3、常用脚本仓库 本文章介绍了如何在Linux服务器上执行Java并启动jar包&#xff0c; 通常我们会使用nohup直接启动&#xff0c;但是还是需要手动停止然后再次启动&#xff0c; 那如何更优雅的在服务器上启动jar包呢&#xff0c;让我…

大数据-124 - Flink State 01篇 状态原理和原理剖析:状态类型 执行分析

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

基于Java+SpringBoot+Vue+MySQL的地方美食分享网站

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 基于SpringBootVue的地方美食分享网站【附源码文档】、前后…

iOS——线程安全、线程同步与线程通信

线程安全和线程同步 线程安全&#xff1a;如果你的代码所在的进程中有多个线程在同时运行&#xff0c;而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的&#xff0c;而且其他的变量的值也和预期的是一样的&#xff0c;就是线程安全的。 若每个…

Unity教程(十三)敌人状态机

Unity开发2D类银河恶魔城游戏学习笔记 Unity教程&#xff08;零&#xff09;Unity和VS的使用相关内容 Unity教程&#xff08;一&#xff09;开始学习状态机 Unity教程&#xff08;二&#xff09;角色移动的实现 Unity教程&#xff08;三&#xff09;角色跳跃的实现 Unity教程&…

苹果Vision Pro的游戏未来:休闲游戏的天堂

休闲游戏的兴起 随着苹果Vision Pro的推出,虚拟现实(Virtual Reality, VR)技术的应用场景得到了极大的拓展。不同于传统PC或主机游戏平台,Vision Pro的游戏生态或将主要面向休闲玩家,而非重度游戏玩家。这类似于iOS的移动游戏生态,未来的Vision Pro游戏可能会集中于易上…

频谱图在频率为0附近有较大幅度,这是为什么

如下图所示&#xff0c;很明显看出&#xff0c;相比于其他频率段&#xff0c;在频率为0Hz左右&#xff0c;其幅值幅度较大。这是为什么呢&#xff1f; 在频谱图中&#xff0c;频率为0 Hz附近的幅值较大&#xff0c;通常意味着信号中存在较强的低频成分或直流分量&#xff08;D…

【系统架构设计师】命令行风格

命令行风格(Command Line Interface, CLI)是一种用户与计算机程序交互的方式,它主要通过文本命令来执行程序的功能。在这种风格中,用户通过键盘输入命令,程序则通过命令行界面(通常是终端或控制台窗口)显示输出和反馈信息。命令行风格因其高效、灵活和强大的功能而广泛应…

应用层协议HTTP

应用层协议中的 HTTP&#xff08;超文本传输协议&#xff09;。在互联网中&#xff0c;HTTP 协议是一个至关重要的一个协议&#xff0c;它定义了客户端与服务器之间如何进行通信&#xff0c;以交换或传输超文本。 本篇介绍了有关 URL 的相关知识&#xff0c;http 的报文格式&am…

HTTPS 证书类型

概念 SSL/TLS证书是用于在互联网上进行安全通信的数字证书。它们通过验证服务器的身份来保护数据传输过程中的隐私、完整性和安全性。根据验证级别的不同&#xff0c;SSL/TLS证书可以分为三种主要类型&#xff1a;域名验证&#xff08;DV&#xff09;证书、组织验证&#xff0…

Ubuntu快速安装Python3

若有不理解&#xff0c;可以问一下这几个免费的AI网站 https://ai-to.cn/chathttp://m6z.cn/6arKdNhttp://m6z.cn/6b1quhhttp://m6z.cn/6wVAQGhttp://m6z.cn/63vlPw 在 Ubuntu 上快速安装 Python 3&#xff0c;可以按照以下步骤进行&#xff1a; 1. 更新系统 首先&#xff…

最佳实践-模板设计模式

目录 一、什么是设计模式 二、模板设计模式-介绍 三、模板设计模式-最佳实践 1、开发需求 2、使用传统的方法来解决 3、优化-使用模板设计模式来解决 一、什么是设计模式 1&#xff09;设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题…

Maven 快照(SNAPSHOT)

Maven 快照&#xff08;SNAPSHOT&#xff09; 1. 引言 在Java项目开发中&#xff0c;Maven是一个广泛使用的构建工具&#xff0c;它通过自动化构建过程来简化项目管理和依赖管理。Maven的一个核心特性是它的依赖管理机制&#xff0c;它允许开发者轻松地管理项目所依赖的库。在…

perl的学习记录——仿真regression

1 记录的背景 之前只知道有这个强大语言的存在&#xff0c;但一直侥幸自己应该不会用到它&#xff0c;所以一直没有开始学习。然而人生这么长&#xff0c;怎就确定自己不会用到呢&#xff1f; 这次要搭建一个可以自动跑完所有case并且打印每个case的pass信息到指定的文件中。…

【C++】std::forward_list

std::forward_list: std::forward_list 是 C 标准库中的一个单向链表容器。与 std::list 相比&#xff0c;std::forward_list 只允许单向遍历&#xff0c;即只能从前往后访问元素。它的实现比 std::list 更轻量&#xff0c;因此在内存和性能方面通常更优&#xff0c;但缺少双向…

基于YOLOv5的积水检测模型训练:从数据到模型的全面解析

之前给大家带来了Yololov5Pyqt5Opencv 实时城市积水报警系统&#xff0c; 详见&#xff1a; Yololov5Pyqt5Opencv 实时城市积水报警系统_yolo opencv pyqt5-CSDN博客 今天详细解析一下积水检测模型训练部分的内容 在积水检测项目中&#xff0c;实时性和准确性是至关重要的。…

python基础语法十一-赋值、浅拷贝、深拷贝

书接上回&#xff1a; python基础语法一-基本数据类型 python基础语法二-多维数据类型 python基础语法三-类 python基础语法四-数据可视化 python基础语法五-函数 python基础语法六-正则匹配 python基础语法七-openpyxl操作Excel python基础语法八-异常 python基础语法…