文章目录

  • 1、准备阶段
    • 1.1、部署规划
    • 1.2、硬件准备
    • 1.3、软件准备
    • 1.4、环境清理
  • 2、实施阶段
    • 2.1、操作系统实施
    • 2.2、数据库部署实施
  • 3、完成

1、准备阶段

1.1、部署规划

本次部署用于测试环境,单机模式,不需要主备;MySQL数据库版本要MySQL5.7.26社区版;操作系统为CentOS7。(生产环境强烈建议不要装单机,风险太高,单机只适合测试环境或者自己学习装来用)

1.2、硬件准备

参数要求
内存>=8G
swap8G
磁盘/ : 50G;/mysqldata : 100G
CPU>=4C

1.3、软件准备

下方链接是MySQL社区版下载官网地址,访问后,根据部署规划选择需要的MySQL软件包。

https://downloads.mysql.com/archives/community/

download.png

1.4、环境清理

rpm -qa | grep -i 'mysql\|mariadb'
yum remove mariadb-server mariadb-client mariadb-libs
yum remove mysql-community-server 
yum remove mysql-community-client mysql-common

2、实施阶段

2.1、操作系统实施

2.1.1、修改主机名(若已完成,则忽略)

hostnamectl set-hostname mysql1

2.1.2、关闭防火墙与SELINUX(若已完成,则忽略)

#关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

#关闭selinux

setenforce 0
sed -i 's/^SELINUX=.*$/SELINUX=disabled/g' /etc/selinux/config

2.1.3、检查时区、时间(若已完成,则忽略)

#需要为东八区,时间正确

# date -R
Thu, 23 Apr 2020 04:50:47 -0400
# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
cp: overwrite ‘/etc/localtime’? yes
# date -R
Thu, 23 Apr 2020 16:51:02 +0800

2.1.4、调整系统限制参数

cat >> /etc/security/limits.conf << EOF
########## mysql limit ########## 
mysql   soft    nofile   65535
mysql   hard    nofile   65535
mysql   soft    nproc    65535
mysql   hard    nproc    65535
EOF

2.1.5、关闭大透明页

#1、查看系统有没有开启透明大页

#cat /sys/kernel/mm/transparent_hugepage/defrag
[always] madvise never
#cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
#方括号[]中的值代表当前有效值,如果其中是never,代表透明大页被禁用,如果是always,代表透明大页已启用。

#2、直接禁用透明大页(临时)

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

#3、永久禁用透明大页

#编辑rc.local文件
vim /etc/rc.d/rc.local
#将下面内容写入rc.local文件
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
#给rc.local文件增加执行权限
chmod +x /etc/rc.d/rc.local

2.1.6、关闭NUMA

#编辑GRUB文件
vim /etc/default/grub
#在GRUB_CMDLINE_LINUX参数末尾添加numa=off(保留原有参数)
#GRUB_CMDLINE_LINUX="...原有参数... numa=off"
#例如:
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet numa=off"#重新生成GRUB配置
grub2-mkconfig -o /etc/grub2.cfg

2.1.7、安装系统包

yum install cmake -y
yum install make -y
yum install gcc -y
yum install gcc-c++ -y
yum install bison -y
yum install ncurses -y 
yum install ncurses-devel -y 
yum install libaio* -y
yum install net-tools -y
yum install iotop -y
yum install telnet -y
yum install sysstat -y

2.2、数据库部署实施

2.2.1、创建MySQL用户、组

groupadd mysql
useradd -g mysql mysql
#查看mysql用户信息
id mysql

2.2.2、创建安装目录,并授权

mkdir -p /mysqldata/my3306/{data,etc,pid,socket,tmp,login,log}
chown -R mysql:mysql /mysqldata

2.2.3、上传MySQL软件压缩包

#上传压缩包至tmp命令
tar -zxvf /tmp/mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
#创建软链接
ln -s /usr/local/mysql-5.7.26-linux-glibc2.12-x86_64/ /usr/local/mysql
#修改权限
chown -R mysql:mysql /usr/local/mysql/

2.2.4、添加MySQL可执行路径

#编辑配置文件
vim /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
#加载使其生效
source /etc/profile

2.2.5、配置my.cnf参数文件
my.cnf是MySQL的核心文件,其使用方括号[]来定义不同的模块,每个模块包含一组相关配置选项。这些模块及其配置选项会对MySQL的运行与性能有直接影响,如果部署后要修改my.cnf,需要重启mysql数据库服务。请注意,本次的my.cnf是以8G内存、单机为基础进行配置的。

mv /etc/my.cnf /etc/my.cnf.bak #/etc下没有这个文件就忽略这条命令
vim /mysqldata/my3306/etc/my.cnf
#MySQL configuration for 8G memory
[client]
############# CLIENT #############
port    = 3306
socket                             = /mysqldata/my3306/socket/mysql.sock
default-character-set = utf8[mysqld]
############# GENERAL #############
server-id                          = 1
autocommit                         = ON
character_set_server               = utf8
collation_server                   = utf8_general_ci
explicit_defaults_for_timestamp    = ON
lower_case_table_names             = 1
port                               = 3306
transaction_isolation              = READ-COMMITTED
default_time_zone                  = "+8:00"
log_timestamps                     =system
############### PATH ##############
basedir                            = /usr/local/mysql
datadir                            = /mysqldata/my3306/data
tmpdir                             = /mysqldata/my3306/tmp
socket                             = /mysqldata/my3306/socket/mysql.sock
pid_file                           = /mysqldata/my3306/pid/mysql.pid
innodb_data_file_path              = ibdata1:1G:autoextend
innodb_data_home_dir               = /mysqldata/my3306/data
innodb_temp_data_file_path         = ibtmp1:12M:autoextend
log_error                          = /mysqldata/my3306/log/error.log
general_log_file                   = /mysqldata/my3306/log/general.log
slow_query_log_file                = /mysqldata/my3306/log/slow.loglog_bin                            = /mysqldata/my3306/log/mysql-bin
log_bin_index                      = /mysqldata/my3306/log/mysql-bin.index
relay_log                          = /mysqldata/my3306/log/relay-log
relay_log_index                    = /mysqldata/my3306/log/relay-log.index
relay_log_purge                    = 1
innodb_log_group_home_dir          = /mysqldata/my3306/data 
innodb_undo_directory              = /mysqldata/my3306/data
innodb_undo_tablespaces            = 3
log_bin_trust_function_creators    = on
############# INNODB #############
innodb_buffer_pool_size  = 4G         ##根据内存调整
innodb_buffer_pool_instances = 4      ##根据内存调整
innodb_log_file_size      = 1G
innodb_log_files_in_group = 3
innodb_log_buffer_size    = 64M
innodb_undo_log_truncate  = 1
innodb_max_undo_log_size  = 1024M
innodb_flush_log_at_trx_commit = 1
innodb_file_per_table    = 1
innodb_flush_method      = O_DIRECT
innodb_io_capacity        = 50000      ###根据磁盘io调整
innodb_io_capacity_max    = 50000    ###根据磁盘io调整
innodb_thread_concurrency = 0        ###默认值为0
innodb_autoinc_lock_mode  = 2
innodb_lock_wait_timeout  = 60
innodb_read_io_threads    = 4
innodb_write_io_threads   = 4
innodb_max_dirty_pages_pct = 80
innodb_autoextend_increment = 512
innodb_checksum_algorithm = CRC32
innodb_doublewrite        = 1
innodb_use_native_aio    = 1
innodb_open_files        = 8192
innodb_flush_neighbors  = 0  ### SSD 设置为0,HDD 设置为1
innodb_print_all_deadlocks  = 1 
innodb_online_alter_log_max_size  = 4G
innodb_undo_logs = 128
back_log = 2048################ P_S ##################
performance-schema=1
performance_schema_instrument = '%memory%=on'
performance_schema_instrument = '%lock%=on'
performance_schema_instrument = '%wait%=on' 
performance-schema-instrument='wait/lock/metadata/sql/mdl=on'####### CACHES AND LIMITS #########
interactive_timeout                = 600
lock_wait_timeout                  = 60    ###MDL锁超时
max_connect_errors                 = 10000
max_connections                    = 2048
max_user_connections               = 1024
thread_stack                       = 256K
thread_cache_size        = 768
key_buffer_size          = 32M   
tmp_table_size            = 64M
max_heap_table_size      = 64M
read_buffer_size          = 2M
read_rnd_buffer_size      = 8M
sort_buffer_size          = 2M
join_buffer_size          = 2M
binlog_cache_size         = 2M
table_open_cache          = 8192
table_definition_cache             = 8192
table_open_cache_instances = 16
bulk_insert_buffer_size  = 64M############# LOGGING #############
general_log                        = 0
log_queries_not_using_indexes      =ON 
log_throttle_queries_not_using_indexes   = 60  
min_examined_row_limit           = 1000
log_slow_admin_statements          = ON
log_error_verbosity               =2
long_query_time                    = 1
slow_query_log                     = ONconnect_timeout          = 300
wait_timeout              = 86400
open_files_limit          = 65535 
skip_name_resolve
skip_ssl
skip_external_locking
explicit_defaults_for_timestamp = TRUE
############# relay_log #############
master_info_repository=TABLE
relay_log_info_repository=TABLE
relay_log_recovery=1############### mysqld_safe ###############
[mysqld_safe]
open_files_limit                    = 65535

2.2.6、mysql初始化安装

 /usr/local/mysql/bin/mysqld --defaults-file=/mysqldata/my3306/etc/my.cnf --initialize --basedir=/usr/local/mysql --datadir=/mysqldata/my3306/data --explicit_defaults_for_timestamp --user=mysql

–initialize:该选项初始化时会在错误日志中写一个随机root密码,初始化完成之后在错误日志中搜索password,紧跟其后的一串字符串就是这个随机密码,在初始化完成并启动mysqld之后,初次登录需要使用这个随机密码才能够登录。
root密码.png

2.2.7、启动数据库

/usr/local/mysql/bin/mysqld_safe --defaults-file=/mysqldata/my3306/etc/my.cnf &

2.2.8、初始化mysql root用户密码

#操作系统执行
mysql -uroot -p'e*0PiBj4!;;C' -S /mysqldata/my3306/socket/mysql.sock
#mysql 命令行执行
alter user root@'localhost' identified by 'Zqd@123.+';
flush privileges;
#操作系统执行
mysql -uroot -pZqd@123.+ -S /mysqldata/my3306/socket/mysql.sock

root密码初始化.png
2.2.9、关闭数据库命令

mysqladmin -uroot -p -S /mysqldata/my3306/socket/mysql.sock shutdown

关闭.png

3、完成

部署完成了,开始测试吧。

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

小程序学习笔记:实现上拉触底加载随机颜色案例全解析

在前端开发中&#xff0c;上拉触底加载数据是一个常见的交互需求。今天&#xff0c;我们就来详细探讨如何实现一个上拉触底加载随机颜色的案例&#xff0c;帮助大家更好地理解相关技术的应用。 案例效果展示 在这个案例里&#xff0c;我们最终要实现的效果是这样的&#xff1…

Java+GcExcel,生成自定义工作表

引言 在当今数字化办公和数据处理的时代&#xff0c;电子表格的应用无处不在。对于 Java 开发人员来说&#xff0c;如何高效地创建、操作和处理兼容 Microsoft Excel 的电子表格是一个常见的需求。GcExcel Java 作为葡萄城表格解决方案中的后端表格组件&#xff0c;为 Java 开…

跨平台C++软件开发之基本数据类型介绍

跨平台C软件开发过程中&#xff0c;原生数据类型的字节宽度差异是一个常见且关键的问题&#xff0c;不同操作系统、编译器、硬件架构可能会为相同的数据类型分配不同的字节数&#xff0c;这可能导致代码在移植过程中出现未定义的行为或兼容性问题。本文简要介绍C原生数据类型字…

Java编程中的单例模式

在Java中实现单例模式有几种方式&#xff0c;但最常见的是懒汉式和饿汉式。我们先来看一个简单的懒汉式实现&#xff1a; public class Singleton {private static Singleton instance;private Singleton() {} // 构造方法私有化&#xff0c;防止外部实例化public static Sin…

原生微信小程序网络请求与上传接口封装实战指南

本文基于微信小程序原生 API&#xff0c;封装 request 和 uploadFile 接口&#xff0c;最终实现统一请求管理、请求拦截、错误处理等能力。 &#x1f4e6; 一、为什么要封装网络请求&#xff1f; 微信小程序提供了 wx.request 和 wx.uploadFile 原生 API&#xff0c;但直接使用…

软件测试基础知识详解

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 1、软件测试定义 软件测试是指在规定的条件下对程序进行操作&#xff0c;以发现程序错误&#xff0c;衡量软件质量&#xff0c;并对其是否能满足设计要求进行…

Spring Boot 文件上传大小配置错误解决方案

问题描述 在Spring Boot应用中出现以下错误&#xff1a; Failed to bind properties under spring.servlet.multipart.max-file-size’ to org.springframework.util.unit.Datasize Property:spring.servlet.multipart.max-file-sizeValue: 10Mb Origin: URL [file:./applicat…

Matplotlib绘制矩阵图,plt.matshow/imshow 与 ax.pcolor(pcolormesh)方法的使用

文章目录 plt.matshow离散colorbar连续colorbar ax.pcolor简单应用综合应用 import matplotlib.pyplot as plt import numpy as np from matplotlib.colors import ListedColormap#data np.random.seed(42) data np.random.rand(4, 4)plt.matshow 可以把下面的matshow换成ims…

关于 ARM64 汇编:调用流程与栈帧结构解析

一、ARM64 函数调用分析&#xff08;汇编级&#xff09; 寄存器规则&#xff08;AArch64 ABI&#xff09; 用途寄存器参数传递x0 ~ x7返回值x0&#xff08;最多两个&#xff1a;x0、x1&#xff09;栈指针sp链接寄存器x30&#xff08;lr&#xff09;帧指针x29&#xff08;fp&a…

Kafka vs RabbitMQ vs Redis:消息中间件全面对比与选型指南

Kafka vs RabbitMQ vs Redis&#xff1a;消息中间件全面对比与选型指南 一、各中间件消息流转全过程Kafka 消息流转全过程&#xff08;含机制详解&#xff09;1. 核心组件2. 流程详解 RabbitMQ 消息流转全过程&#xff08;含机制详解&#xff09;1. 核心组件2. 流程详解 Redis …

【代码级指南】从Zero-shot到Chain-of-Thought:Prompt工程全栈技术解析​

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。 从理论到实践&#xff0c;掌握Zero-shot/Few-shot Prompt设计精髓。 一、Prompt Engineering 核心概念图解 Prompt Engineering 三大支柱 二、Prompt 设计基础框架 1. Prompt 核心四要素 prompt_template "&q…

sizeof()函数无法计算形参指针指向的字符串大小

给定的代码中&#xff0c;func() 函数打印的 name_len 是 指针的大小&#xff0c;而不是字符串的长度。具体原因如下&#xff1a; 代码分析 #include <stdio.h> #include <string.h>void func(char *name) {printf("name_len:%d", sizeof(name)); // 打…

Python打卡:Day37

知识点回顾&#xff1a; 过拟合的判断&#xff1a;测试集和训练集同步打印指标模型的保存和加载 仅保存权重保存权重和模型保存全部信息checkpoint&#xff0c;还包含训练状态 早停策略 浙大疏锦行

Android 9.0(API 28)后字重设置

在 Android 应用中设置字体字重&#xff08;Font Weight&#xff09;可以通过多种方式实现&#xff0c;下面详细介绍各种方法及其适用场景。 1. 使用 XML 属性设置字重 1.1 基本字重设置&#xff08;API 1&#xff09; <TextViewandroid:layout_width"wrap_content&…

WebRTC(十):RTP和SRTP

RTP&#xff08;Real-time Transport Protocol&#xff09; 作用 RTP 用于传输实时媒体流&#xff08;如音频、视频&#xff09;&#xff0c;它不提供可靠传输&#xff0c;而是关注低延迟、高实时性。 报文结构 整体结构 RTP 报文由以下部分组成&#xff1a; RTP Header …

微服务架构下面临的安全、合规审计挑战

微服务架构在带来敏捷性、可扩展性等优势的同时&#xff0c;也给安全和合规审计带来了巨大的挑战。这些挑战主要源于微服务的 分布式特性、动态性以及数量庞大 等特点。 以下是微服务架构下安全和合规审计面临的具体挑战 一、安全审计挑战 1. 攻击面扩大和复杂性增加 服务数…

显卡等驱动程序的介绍与安装

文章目录 1. 什么是驱动程序2. 电脑的驱动程序有哪些3. 电脑的驱动程序的安装4. 独立显卡驱动程序的安装5. 现代化驱动程序的安装6. 驱动程序既然这么重要&#xff0c;为什么我不都下一遍呢&#xff1f; 1. 什么是驱动程序 假设我们现在成功组装了一台台式机&#xff0c;那我们…

【Python】高光谱数据分析

特征提取 import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.cross_decomposition import PLSRegression from sklearn.preprocessing import StandardScaler from sklearn.linear_model import LinearRegression# 设置matplotlib支持中文…

nt!CcGetVirtualAddressIfMapped函数中的nt!CcGetVacbLargeOffset函数分析--重要

第一部分&#xff1a; 1: kd> kc # 00 nt!CcGetVirtualAddressIfMapped 01 nt!CcFlushCache 02 Ntfs!LfsFlushLfcb 03 Ntfs!LfsFlushToLsnPriv 04 Ntfs!LfsWriteLfsRestart 05 Ntfs!LfsWriteRestartArea 06 Ntfs!NtfsCheckpointVolume 07 Ntfs!NtfsCheckpointAllVolumes 0…

K8s入门指南:架构解析浓缩版与服务间调用实战演示

目录 前言一、k8s概念理解1、k8s整体架构&#xff08;1&#xff09; Master 主节点&#xff08;2&#xff09; Node 工作节点&#xff08;3&#xff09; Etcd 键值存储数据库 &#xff12;、Pod被视为最小的部署单元&#xff13;、k8s的五种控制器类型&#xff08;1&#xff09…