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数据结构初始化

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

相关推荐
linmengmeng_13149 小时前
【总结】MyBatis-Plus批量插入与清表的正确姿势
java·spring boot·mysql·mybatis
笃行3509 小时前
别拿MySQL数据库管理工具硬导:MySQL 迁 KingbaseES 的完整工具链
数据库
风哥2号9 小时前
数据库教程FGMT51‑PostgreSQL实例管理与参数文件
数据库·postgresql
蓝速科技10 小时前
桌面双屏翻译机量产调试:三类场景兼容性破局方案丨蓝速科技
运维·数据库·人工智能·科技·技术分享
达梦数据10 小时前
DMDRS空间数据类型说明:Oracle、DM8、MySQL空间数据类型映射
数据库·mysql·oracle
白远山10 小时前
24小时自助健身房系统开发实战:从需求分析到完整指南
java·开发语言·数据库·数据挖掘·需求分析
达梦数据11 小时前
DMDRS服务与模块的运行步骤
数据库
lusklusklusk11 小时前
Oracle索引组织表,SQLServer聚集索引,Mysql Innodb表的数据行不是在磁盘上像排队一样严格连续地存放
mysql·postgresql·oracle·sqlserver
让学习成为一种生活方式11 小时前
PMGD:植物线粒体基因组数据库--Journal of Integrative Plant Biology
数据库
达梦数据12 小时前
达梦数据复制软件DMDRS搭建部署示例:源数据库DM8到目标数据库DM8一对一数据同步
数据库