MySQL 集群技术 1.源码编译

一 MySQL 在服务器中的部署方法

在企业中 90%的服务器操作系统均为 Linux

Mysql 版本使用最多的是 Mysql5.7 和 Mysql8

在企业中对于 Mysql 的安装通常用源码编译的方式来进行

官网: http://www.mysql.com

1.下载MySQL8.3版源码包

2.虚拟机硬件配置

#登录开启虚拟机。

3.安装并编译mysql

cpp 复制代码
#上传并解压源包
[root@mysql-1 ~]# ls
anaconda-ks.cfg  libtirpc-devel-1.3.3-9.el9.x86_64.rpm  mysql-boost-8.3.0.tar.gz
[root@mysql-1 ~]# tar -xvf mysql-boost-8.3.0.tar.gz 
[root@mysql-1 ~]# ls
anaconda-ks.cfg  libtirpc-devel-1.3.3-9.el9.x86_64.rpm  mysql-8.3.0  mysql-boost-8.3.0.tar.gz

#进入并建立build文件夹
[root@mysql-1 ~]# cd mysql-8.3.0/
[root@mysql-1 mysql-8.3.0]# ls
boost            Docs               libbinlogevents   mysql-test     run_doxygen.cmake  support-files
client           Doxyfile-ignored   libchangestreams  MYSQL_VERSION  scripts            testclients
cmake            Doxyfile.in        libmysql          mysys          share              unittest
CMakeLists.txt   doxygen_resources  libs              packaging      sql                utilities
components       extra              libservices       plugin         sql-common         vio
config.h.cmake   include            LICENSE           README         storage
configure.cmake  INSTALL            man               router         strings
[root@mysql-1 mysql-8.3.0]# mkdir build/
[root@mysql-1 mysql-8.3.0]# cd build/
cpp 复制代码
#安装mysql源码包依赖性
[root@mysql-1 ~]# ls
anaconda-ks.cfg  libtirpc-devel-1.3.3-9.el9.x86_64.rpm  mysql-8.3.0  mysql-boost-8.3.0.tar.gz
[root@mysql-1 ~]# dnf install libtirpc-devel-1.3.3-9.el9.x86_64.rpm -y
[root@mysql-1 ~]# dnf install cmake3 gcc git bison openssl-devel ncurses-devel systemd-devel rpcgen.x86_64   gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-binutils gcc-toolset-12-annobin-annocheck gcc-toolset-12-annobin-plugin-gcc -y
cpp 复制代码
#源码编译参数
[root@mysql-1 ~]# cd mysql-8.3.0/   
[root@mysql-1 mysql-8.3.0]# cd build/    #建立编译目录
[root@mysql-1 build]# ls
[root@mysql-1 build]#  cmake3 .. \          
> -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \  #指定安装路径
> -DMYSQL_DATADIR=/data/mysql \              #指定数据目录
> -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \ #指定套接字文件
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \         #指定启用INNODB存储引擎,默认用myisam
> -DWITH_EXTRA_CHARSETS=all \                #扩展字符集
> -DDEFAULT_CHARSET=utf8mb4 \                #指定默认字符集
> -DDEFAULT_COLLATION=utf8mb4_unicode_ci \   #指定默认校验字符集
> -DWITH_SSL=system \                        #指定MySQL 使用系统已安装的SSL 库
> -DWITH_DEBUG=OFF                        

[root@mysql_node1 build]# make -j2         #-j2 表示有几个核心就跑几个进程


#编译完成之后,需要安装编译好的文件内容
[root@mysql_node1 build]# make install

#在系统进行编译时,不要动它,直到编译到100% !

4.部署MySQL

cpp 复制代码
#修改环境变量
[root@mysql-1 mysql]# vim ~/.bash_profile    
export PATH=$PATH:/usr/local/mysql/bin	#设置mysql运行环境的环境变量
[root@mysql-1 mysql]# source ~/.bash_profile   

#建立数据库程序运行用户
[root@mysql-1 mysql]# useradd -M -s /sbin/nologin mysql
[root@mysql-1 mysql]# cd

#建立数据库数据目录
[root@mysql-1 ~]# mkdir -p /data/mysql/
[root@mysql-1 ~]# chown mysql.mysql  /data/mysql/

#生成配置文件
[root@mysql-1 ~]# vim /etc/my.cnf
[mysqld]
datadir=/data/mysql
socket=/data/mysql/mysql.sock
server-id=10

#设置启动文件

cpp 复制代码
[root@mysql-1 ~]# vim /lib/systemd/system/mysqld.service
[Unit]
Description=MySQL 8.3 Database Server
Documentation=man:mysqld(8)
After=network.target syslog.target

[Service]
Type=notify
User=mysql
Group=mysql
# 重点:--defaults-file 必须放在第一个参数!
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
ExecReload=/usr/local/mysql/bin/mysqladmin --defaults-file=/etc/my.cnf shutdown
TimeoutSec=300
PrivateTmp=true
LimitNOFILE=65535
LimitNPROC=65535
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target

#mysql数据结构初始化

#那么源码编译部分内容就完成了,其他学习内容前往主页查看

相关推荐
Patrick在香港3 分钟前
时间戳凭空早了 8 小时:datetime.utcnow() 弃用实测与漂移复盘
数据库·python·标准库·datetime·时区·弃用
李兆龙的博客8 小时前
问津集 #26:Lakebase——Postgres 的版本化页面存储、数据库分支与计算弹性
数据库
倔强的石头_10 小时前
聊聊金仓KFS:一款把数据同步软件做扎实的产品
数据库
闲云野鹤在人间10 小时前
MySQL|从理论、安装、备份到主从复制、MHA高可用详解
linux·运维·数据库·mysql·云计算
禾小西10 小时前
Redis:从两大维度和三大主线建立知识体系
数据库·redis·缓存
禾小西11 小时前
Redis 数据结构:快速的 Redis 有哪些慢操作?
数据结构·数据库·redis
数据库小学妹11 小时前
数据共享交换平台选型:交换方式对比与避坑指南
数据库·信创·数据同步·数据交换平台·政务数据共享·数据共享交换平台·数据库底座
要开心吖ZSH12 小时前
MySQL 慢 SQL 排查操作手册-个人笔记版
java·笔记·sql·mysql·慢查询
loong_XL13 小时前
决策模型做内容安全检测:从踩坑到上线
数据库·安全·jev·决策模型
这个DBA有点耶13 小时前
数据库双轨并行实战:全量并行策略、增量延迟控制、双向回切与一致性校验
数据库·架构·dba