当前位置: 首页 > news >正文

【Linux】Centos7 shell实现MySQL5.7 tar 一键安装

🦄 个人主页——🎐个人主页 🎐✨🍁

🪁🍁🪁🍁🪁🍁🪁🍁 感谢点赞和关注 ,每天进步一点点!加油!🪁🍁🪁🍁🪁🍁🪁🍁

目录

一、安装下载

二、执行安装


一、安装下载


下载地址:

https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.44-el7-x86_64.tar.gz

脚本和tar包结构

my.cnf 配置文件

[root@windp-aio opt]# cat config/my.cnf 
[mysql]
socket=/var/lib/mysql/mysql.sock
# set mysql client default chararter
default-character-set=utf8[mysqld]
socket=/var/lib/mysql/mysql.sock
# set mysql server port  
port = 3306
# set mysql install base dir
basedir=/usr/local/mysql
# set the data store dir
datadir=/usr/local/mysql/data
# set the number of allow max connnection
max_connections=200
# set server charactre default encoding
character-set-server=utf8
# the storage engine
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
explicit_defaults_for_timestamp=true
[mysql.server]
user=mysql
basedir=/usr/local/mysql

二、执行安装


install_mysql.sh 安装脚本

#! /bin/bash
#
# Author: kangll
# CreateTime: 2023-11-10
# Desc: install mysql5.7.44
#
echo "******** INSTALL MYSQL *********"BASEDIR=$(cd "$(dirname "$0")"; pwd)# 卸载原有的mariadb
OLD_MYSQL=`rpm -qa|grep mariadb`
profile=/etc/profile
for mariadb in $OLD_MYSQL
dorpm -e --nodeps $mariadb
done# 删除原有的my.cnf
rm -rf /etc/my.cnf#添加用户组 用户
groupadd mysql
useradd -g mysql mysql#解压mysql包并修改名称
tar -zxvf  $BASEDIR/mysql-5.7.44-el7-x86_64.tar.gz -C /usr/local
mv /usr/local/mysql-5.7.44-el7-x86_64 /usr/local/mysql#更改所属的组和用户
chown -R mysql /usr/local/mysql
chgrp -R mysql /usr/local/mysqlmkdir -p /usr/local/mysql/data
mkdir -p /usr/local/mysql/log
chown -R mysql:mysql /usr/local/mysql/data#粘贴配置文件my.cnf 内容见八 中的 my.cnf
cp $BASEDIR/config/my.cnf /usr/local/mysql/# 安装mysql
/usr/local/mysql/bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/# 设置文件及目录权限:
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chown 777 /usr/local/mysql/my.cnf
chmod +x /etc/init.d/mysqldmkdir /var/lib/mysql
chmod 777  /var/lib/mysql# 启动mysql
/etc/init.d/mysqld start# 设置开机启动
chkconfig --level 35 mysqld on
chmod +x /etc/rc.d/init.d/mysqld
chkconfig --add mysqld# 修改环境变量 
ln -s /usr/local/mysql/bin/mysql /usr/bin
ln -s /var/lib/mysql/mysql.sock   /tmp/
cat > /etc/profile.d/mysql.sh<<EOFexport PATH=$PATH:/usr/local/mysql/bin
EOF
mysqlPw=`sed -n 2p /root/.mysql_secret`
mysqlPwTMP=`sed -n 2p /root/.mysql_secret`1
mysqlNewPw=Winner001
hostname=`"hostname"`
#ssh $hostname "source /etc/profile;java -version"
ssh $hostname "source /etc/profile;mysqladmin -h127.0.0.1 -uroot -p'$mysqlPw' password '$mysqlPwTMP';mysqladmin -h127.0.0.1 -uroot -p'$mysqlPwTMP' password '$mysqlNewPw';exit"echo "******** MYSQL installation completed *******

执行完脚本 成功登录

ssh 操作需要免密 附上 本机免密脚本 ssh_keygen.sh

#! /bin/bash
#
#Author: kangll
#CreateTime: 2023-11-10
#Desc: 本机免密
#
set -x
# get ip 
ip=$(ip addr show | grep -E 'inet [0-9]' | awk '{print $2}' | awk -F '/' '{print $1}' | sed -n '$p')
ssh_hosts=${ip}
ssh_networkname=(windp-aio)
ssh_passwd=winner@001# 定义修改/etc/hosts文件的方法
#echo "开始修改地址映射"#for ((i=0;i<${#ssh_hosts[*]};i++));do
#    sed -i '/^'"${ssh_hosts[$i]}"'/d' /etc/hosts
#	echo "尝试连接: ${ssh_networkname[$i]}"
#	timeout 5 ssh root@${ssh_networkname[$i]} "echo ${ssh_networkname[$i]}: 'This is success!'"
#	if [[ $? -ne 0 ]];then
#		echo "添加地址映射:${ssh_hosts[$i]} ${ssh_networkname[$i]}"
#		echo "${ssh_hosts[$i]} ${ssh_networkname[$i]}" >> /etc/hosts
#	fi
#doneexpect -v
if [ `echo $?` -ne 0 ];thenecho "安装expect命令"yum install -y expect
fi 
################################
#
################################
create_ssh_pub(){echo "生成本地ssh公钥"/usr/bin/expect << eof# 设置捕获字符串后,期待回复的超时时间set timeout 30spawn ssh-keygen -t rsa -b 1024## 开始进连续捕获expect	{".ssh/id_rsa)"      { send "\n";  exp_continue }"Overwrite (y/n)?"  { send "y\n"; exp_continue }"no passphrase):"   { send "\n";  exp_continue }"passphrase again:" { send "\n";  exp_continue }}
eof
}
if [ ! -f /root/.ssh/id_rsa.pub ];thencreate_ssh_pub
fi#################################
# 定义复制ssh公钥方法
#################################
config_copy_ssh(){echo "复制公钥到对应的主机上"/usr/bin/expect << eof# 设置捕获字符串后,期待回复的超时时间set timeout 30spawn ssh-copy-id -i /root/.ssh/id_rsa.pub $1@$2## 开始进连续捕获expect	{"connecting (yes/no)?" { send "yes\n";  exp_continue }"s password:"          { send "${ssh_passwd}\n"; exp_continue }}
eof
}
for name in ${ssh_networkname[*]};dotimeout 5 ssh root@${name} "echo ${name}: 'This is success!'"if [[ $? -ne 0 ]];thenecho "复制文件到: ${name}"config_copy_ssh root ${name} > /dev/nullfidone

参考链接:ansible 实现自动化部署ambari(纯离线)_ansible ambari-CSDN博客 

http://www.lryc.cn/news/226773.html

相关文章:

  • 一步一步详细介绍如何使用 OpenCV 制作低成本立体相机
  • Zookeeper篇---第四篇
  • Seata之TCC模式解读
  • 算法--数据结构
  • 关系型数据库Redis安装与写入数据
  • 《红蓝攻防对抗实战》十二.内网穿透之利用ICMP协议进行隧道穿透
  • 【海德教育】国家开放大学和函授区别有:学校不同、入学门槛不同、学习方式不同、招生对象不同、学习年限不同,具体如下:
  • 单片机启动流程
  • Linux学习教程(第二章 Linux系统安装)2
  • 操作系统 | proc文件系统
  • 刷题笔记(第五天)
  • 【OpenHarmony内核】Harmony内核互斥性信号量
  • 给OFFICE增加一个功能搜索
  • 53基于matlab的Tamura纹理特征提取
  • C++初阶--类与对象(3)(图解)
  • 考研分享第1期 | 末9生物跨专业考研北京大学电子信息404分经验分享
  • openGauss学习笔记-120 openGauss 数据库管理-设置密态等值查询-概述及使用gsql操作密态数据库
  • 软件自动化测试平台
  • springMVC 导出Excel ,并提供下载(处理日期格式问题)
  • 软件工程理论与实践 (吕云翔) 第二章软件过程 课后习题及其答案
  • HTML跳转锚点
  • 新能源汽车高压线束是如何快速连接到测试设备上进行电性能测试的
  • Azure 机器学习 - 使用受保护工作区时的网络流量流
  • 强化学习中蒙特卡罗方法
  • Pytorch从零开始实战09
  • Milvus Cloud ——Agent 的展望
  • EM@比例恒等式@分式恒等式
  • 使用米联客FPGA开发板进行光口开发时遇到的问题总结
  • 【chat】 1:Ubuntu 20.04.3 编译安装moduo master分支
  • C#基于inpoutx64读写ECRAM硬件信息