root用户自动安装mysql 5.7脚本

#!/bin/bash
# -*- codeing = utf-8 -*-
# @Time : 2023/09/25 22:11
# @Author : lidachuan
# @File : mysql_install.sh
# @Software : PyCharm

#1.设置mysql安装目录
mysql_install=/home/mysql
#2.设置mysql安装目录
mysql_data=/testdata
#3.设置mysql端口
mysql_port=3306
#4.设置mysql版本号
mysql_version=mysql-5.7.26

#清理系统环境
echo "清理系统环境"
rpm -e `rpm -qa |grep mariadb` --nodeps
rm -rf /var/lib/mysql
rm -rf /etc/my.cnf.d/
rm -rf /etc/my.cnf
rm -rf /etc/init.d/mysql
#ps aux |grep mysql |grep -v grep |awk '{print $2}'|xargs kill -9


#系统环境检查
echo "系统环境检查"
find / -iname libaio.so.1
echo "/usr/lib64/libaio.so.1依赖检查"

#安装目录并创建用户
echo "安装目录并创建用户"
mkdir -p $mysql_install
userdel  mysql
groupadd mysql && useradd -r -g mysql mysql
chown -R mysql:mysql $mysql_install

#解压安装包
echo "解压安装包"
tar -zxvf mysql-5.7.26.tar.gz -C $mysql_install
sleep 3
mv $mysql_install/$mysql_version $mysql_install/mysql

#创建mysql数据目录
echo "创建数据目录"
mkdir -p $mysql_data/mysql
cd $mysql_data/mysql
mkdir {data,logs}
touch $mysql_data/mysql/logs/error.log
chown -R mysql:mysql $mysql_data/mysql

echo "写入/etc/my.cnf配置"
echo "
[mysql]
socket=$mysql_data/mysql/mysql.sock
# set mysql client default chararter
default-character-set=utf8

[mysqld]
socket=$mysql_data/mysql/mysql.sock
# set mysql server port
port = $mysql_port
# set mysql install base dir
basedir=$mysql_install/mysql
# set the data store dir
datadir=$mysql_data/mysql/data/
pid-file=$mysql_data/mysql/data/mysql.pid
# set the number of allow max connnection
max_connections=2048 #最大连接数
# set server charactre default encoding
character-set-server=utf8
# the storage engine
default-storage-engine=INNODB
# 设置MySQL对表名等不区分大小写
lower_case_table_names=1
max_allowed_packet=200M
explicit_defaults_for_timestamp=true
#阻止过多尝试失败的客户端以防止暴力破解密码的情况,与性能并无太大的关系
max_connect_errors=30
#此参数确定数据日志文件的大小,以M为单位,根据数据更新频率调整。
innodb_log_file_size=50
#指定大小的内存来缓冲数据和索引,最大可以把该值设置成物理内存的80%
innodb_buffer_pool_size=10G
key_buffer_size=16M
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
#log-bin=mysql-bin #添加这一行就ok
#binlog-format=ROW #选择row模式
expire_logs_days=7 #日志的保存天数
#错误日志存放地址
log-error = $mysql_data/mysql/logs/error.log
#开启slow日志
slow_query_log = ON
slow_query_log_file = $mysql_data/mysql/logs/slow.log
long_query_time = 20
log_queries_not_using_indexes
server_id=1 #配置mysql replaction需要定义,不能和canal的slaveId重复
innodb_file_per_table=1

[mysql.server]
user=mysql
basedir=$mysql_install/mysql
#可以防止出现插入中文报错;如果此时不生效,可以强制在创建表的时候指定使用utf8的编码集
[client]
default-character-set = utf8
" > /etc/my.cnf

chown  mysql:mysql /etc/my.cnf

#初始化mysql并设置空密码使用-initialize生成随机密码,使用-initialize-insecure生成空密码。默认帐号root,后面的-user=mysql不更改
echo "初始化mysql"
sudo -u mysql  $mysql_install/mysql/bin/mysqld --initialize-insecure


#mysql添加到系统服务
echo "把mysql添加到系统服务"
cp $mysql_install/mysql/support-files/mysql.server /etc/init.d/mysql
chmod 755 /etc/init.d/mysql

#启动mysql进程
echo "启动mysql"
sudo -u mysql  /etc/init.d/mysql start

#mysql开机启动
echo "设置mysql开机自启动"
cd /etc/init.d
chkconfig --add mysql
chkconfig --level 345 mysql on

#添加环境变量
echo "添加环境变量"
sou=`cat /etc/profile |grep "mysql/bin" |wc -l`
if [ $sou -eq 0 ];then
echo export PATH='$PATH':$mysql_install/mysql/bin >> /etc/profile
fi

#检查mysql是否启动
echo "检查mySQL是否启动"
ss -antlp |grep $mysql_port
if [ $? -eq 0 ];then
echo "mysql部署success"
else
echo "mysql部署fail"
fi

#source /etc/profile
#前面初始化mysql为空密码
#1、新建远程访问用户:
mysql -e "grant all on *.* to deploy@'%' identified by 'VqxSINILWT7i!9Db';"
#2、权限查看:
#mysql> FLUSH PRIVILEGES;
mysql -e "flush privileges;"
#设置root登陆密码
mysql -e "SET PASSWORD = PASSWORD('tzIrmrMrRsCqFg&V');"
#3、输出密码:
#echo '
root密码:tzIrmrMrRsCqFg&V
deploy密码:VqxSINILWT7i!9Db'
#firewall-cmd --zone=public --add-port=$mysql_port/tcp --permanent
#firewall-cmd --reload
#firewall-cmd --list-port

脚本测试:

[root@t3-dtpoc-dtpoc-web06 ~]# sh mysql_install.sh 
清理系统环境
rpm: no packages given for erase
系统环境检查
/usr/lib64/libaio.so.1
/usr/lib64/libaio.so.1依赖检查
安装目录并创建用户
解压安装包
mysql-5.7.26/
mysql-5.7.26/bin/
mysql-5.7.26/bin/myisam_ftdump
。。。
mysql-5.7.26/backup/logs/
mysql-5.7.26/backup/tmp/
mysql-5.7.26/backup/chkpoint/
创建数据目录
写入/etc/my.cnf配置
初始化mysql
把mysql添加到系统服务
启动mysql
Starting MySQL... SUCCESS! 
设置mysql开机自启动
添加环境变量
检查mySQL是否启动
LISTEN    0         459                      *:3306                   *:*        users:(("mysqld",pid=986603,fd=28))                                            
mysql部署success

root密码:tzIrmrMrRsCqFg&V
deploy密码:VqxSINILWT7i!9Db#
[root@t3-dtpoc-dtpoc-web06 ~]# su - mysql
[mysql@t3-dtpoc-dtpoc-web06 ~]$ mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.26-log MySQL Community Server (GPL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/144617.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Android12之Codec2.0配置编解码器为H264实现(四十五)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注:Android…

Qt使用I.MX6U开发板上的按键(原理:将电脑键盘方向键↓在Qt中的枚举值与开发板中按键定义的枚举值一致,这样电脑端测试效果就与开发板的一致)

在上篇介绍了Qt点亮I.MX6U开发板的一个LED,对于Qt控制I.MX6U开发板的一个蜂鸣器原理也是一样的,就不做详细介绍,具体可参考Qt控制I.MX6U开发板的一个蜂鸣器,本篇介绍Qt使用I.MX6U开发板上的按键的相关内容。 文章目录 1. 开发板硬…

李宏毅机器学习第一课(结尾附作业模型详细分析)

机器学习就是让机器找一个函数f,这个函数f是通过计算机找出来的 如果参数少的话,我们可以使用暴搜,但是如果参数特别多的话,我们就要使用Gradient Descent Regression (输出的是一个scalar数值) Classification (在…

QT配置MySQL数据库 ninja: build stopped: subcommand failed

QT配置MySQL数据库 我当前的软件版本:QT Creator 10.0.2 (community),MingW 6.4.3 (QT6),MySQL 8.0。 MySQL不配置支持的数据库有QList("QSQLITE", "QODBC", "QPSQL"),这个时候是不支持MYSQL数据…

数据集笔记:2015上海地铁一卡通数据

数据地址:上海地铁数据_免费高速下载|百度网盘-分享无限制 (baidu.com) 数据介绍 上海2015年几天的地铁一卡通出入站信息 卡号、交易日期、交易时间、公交线路/地铁站点中文名称、行业名称(公交、地铁、出租、轮渡、PR停车场)、交易金额、交易性质(非优惠、优惠、…

PHP生成二维码带图标代码实例

PHP生成二维码带图标代码实例(PHP QR Code二维码生成类库) public static function png($text, $outfilefalse, $levelQR_ECLEVEL_L, $size3, $margin4, $saveandprintfalse) { $enc QRencode::factory($level, $size, $margin); return $enc->…

token登录的实现

token登录的实现 我这种token只是简单的实现token,就是后端利用UUID 生成简单随机码,利用随机码作为在Redis中的键,然后存储的用户信息作为值,在每次合理请求的时候对token的有效时间进行刷新(利用拦截器)&…

第P7周—咖啡豆识别(1)

数据集及wen件目录介绍: 数据集:工作台 - Heywhale.com 一、前期工作 1.1 数据详情 import torch import torch.nn as nn import torchvision.transforms as transforms import torchvision from torchvision import transforms, datasets import os,…

笔试强训Day7

T1&#xff1a;合法括号序列判断 链接&#xff1a;合法括号序列判断__牛客网 给定一个字符串A和其长度n&#xff0c;请返回一个bool值代表它是否为一个合法的括号串&#xff08;只能由括号组成&#xff09;。 经典括号匹配问题&#xff0c;考察栈的使用 #include<iostre…

Pytest+Allure+Excel接口自动化测试框架实战

1. Allure 简介 简介 Allure 框架是一个灵活的、轻量级的、支持多语言的测试报告工具&#xff0c;它不仅以 Web 的方式展示了简介的测试结果&#xff0c;而且允许参与开发过程的每个人可以从日常执行的测试中&#xff0c;最大限度地提取有用信息。 Allure 是由 Java 语言开发的…

常识判断 --- 科技常识

目录 力与热 光和声 航空成就 垃圾分类 百科知识 血型 二十四节气歌 春雨惊春清谷天 夏满忙夏暑相连 秋处露秋寒霜降 冬雪雪冬小大寒 力与热 光和声 航空成就 垃圾分类 百科知识 血型

【Ambari】银河麒麟V10 ARM64架构_安装Ambari2.7.6HDP3.3.1问题总结

&#x1f341; 博主 "开着拖拉机回家"带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——&#x1f390;开着拖拉机回家_大数据运维-CSDN博客 &#x1f390;✨&#x1f341; &#x1fa81;&#x1f341; 希望本文能够给您带来一定的帮助&#x1f338;文…

NFT Insider#109:The Sandbox推出了首个足球小将 NFT 作品集,YGG Web3 游戏峰会即将开启!

引言&#xff1a;NFT Insider由NFT收藏组织WHALE Members、BeepCrypto联合出品&#xff0c;浓缩每周NFT新闻&#xff0c;为大家带来关于NFT最全面、最新鲜、最有价值的讯息。每期周报将从NFT市场数据&#xff0c;艺术新闻类&#xff0c;游戏新闻类&#xff0c;虚拟世界类&#…

API 设计/开发/测试工具:Apifox与怎么通过拦截器

目录 一、测试接口如何创建&#xff1f; 二、如何添加body和header&#xff1f; 三、如果项目设置的有拦截器&#xff1f; 四、拦截器概念&#xff1a; 4.1使用拦截器概念 4.2 先写一个配置类WebMvcConfig.java 4.3 AuthInitInterceptor拦截器中实现 一、测试接口如何创建…

数据结构:简单记录顺序表、链表、栈、队列

初学者很容易认为顺序表、链表、栈、队列是四种并列的数据结构&#xff0c;其实仔细想想并不是。 注意区分&#xff1a; 顺序表和链表是指数据的存储结构&#xff0c;是线性表的一种&#xff0c;顺序表一般指的就是数组&#xff0c;数据存储的逻辑顺序和物理顺序都是连续的&a…

【图像处理】SIFT角点特征提取原理

一、说明 提起在OpenCV中的特征点提取&#xff0c;可以列出Harris&#xff0c;可以使用SIFT算法或SURF算法来检测图像中的角特征点。本篇围绕sift的特征点提取&#xff0c;只是管中窥豹&#xff0c;而更多的特征点算法有&#xff1a; Harris & Stephens / Shi–Tomasi 角点…

支付宝电脑网站支付,异步通知

一&#xff1a;异步通知是支付宝回调商户的服务器&#xff0c;所以这个地址需要通过外网访问&#xff0c;在真实项目中都会有对应的服务器&#xff0c;但是在测试中只有使用内网穿透工具 推荐使用NATAPP-内网穿透 基于ngrok的国内高速内网映射工具 配置好内网穿透之后不要忘记…

CIP或者EtherNET/IP中的PATH是什么含义?

目录 SegmentPATH举例 最近在学习EtherNET/IP&#xff0c;PATH不太明白&#xff0c;翻了翻规范&#xff0c;在这里记个笔记。下面的叙述可能是中英混合&#xff0c;有一些是规范中的原文我直接搬过来的。我翻译的不准确。 Segment PATH是CIP Segment中的一个分类。要了解PATH…

PHP8的继承和多态-PHP8知识详解

我们在前面的时候讲过《面向对象编程的特点》时&#xff0c;面向对象编程具有3大特点&#xff1a;封装性、继承性和多态性。 继承和多态的根本作用就是完成代码的重用。下面就来讲解php8的继承和多态。 1继承 子类可以继承父类的所有成员变量和成员方法&#xff0c;包括构造方…

数据集笔记: Porto

数据来源&#xff1a;Taxi Trajectory Data_数据集-阿里云天池 (aliyun.com) 1 数据介绍 葡萄牙波尔图市运行的所有442辆出租车的全年轨迹&#xff08;从2013年7月1日至2014年6月30日&#xff09; 2 读取数据 import pandas as pdtrapd.read_csv(C:/Users/16000/Download…