MySQL 單機部署

文章目錄

  • 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…