Red Hat 8 源码构建mysql:8.0.35版

admin
2024-07-05 / 0 评论 / 97 阅读 / 正在检测是否收录...

一、主机信息

[root@bogon mysql]# cat /etc/redhat-release 
Red Hat Enterprise Linux release 8.8 (Ootpa)

[root@bogon mysql]# uname -r 
4.18.0-477.10.1.el8_8.x86_64

[root@bogon mysql]# lscpu   | grep '^CPU(s):'
CPU(s):              2

[root@bogon mysql]# free  -h
              total        used        free      shared  buff/cache   available
Mem:          3.6Gi       282Mi       1.3Gi       8.0Mi       2.0Gi       3.0Gi
Swap:         3.9Gi          0B       3.9Gi

二、下载源码包

官方下载

ly6un28c.png

三、创建管理目录且解压

[root@bogon mysql]# mkdir /usr/local/mysql8
[root@bogon ~]# tar xf mysql-boost-8.0.38.tar.gz  -C /usr/local/mysql8/
[root@bogon ~]# cd /usr/local/mysql8/
[root@bogon mysql8]# ln -s  mysql-8.0.38 mysql

四、检查环境&编译安装

4.1 安装需要软件包

[root@bogon mysql8]# dnf -y install cmake make gcc gcc-c++ gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-binutils gcc-toolset-12-annobin-annocheck gcc-toolset-12-annobin-plugin-gcc openssl-devel ncurses-devel libtirpc-devel rpcgen

[root@bogon ~]# wget https://dl.rockylinux.org/pub/rocky/8/PowerTools/x86_64/os/Packages/r/rpcgen-1.3.1-4.el8.x86_64.rpm

[root@bogon ~]# dnf -y install  rpcgen-1.3.1-4.el8.x86_64.rpm

4.2 创建用户

1.检查是否有mysql用户
[root@bogon mysql8]# id  mysql 
uid=995(mysql) gid=992(mysql) groups=992(mysql)
2.创建用户
[root@bogon mysql8]# useradd   -r  -s /sbin/false  mysql

4.3 检查环境及指定参数

[root@bogon mysql-8.0.38]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql8/ -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DENABLED_LOCAL_INFILE=ON -DWITH_INNODB_MEMCACHED=ON -DWITH_SSL=system -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DCOMPILATION_COMMENT="zsd edition" -DWITH_BOOST=/usr/local/mysql8/mysql-8.0.38/boost/  -DMYSQL_UNIX_ADDR=/usr/local/mysql8/3306/mysql.sock -DSYSCONFDIR=/usr/local/mysql8/data/3306  -DFORCE_INSOURCE_BUILD=1

描述:

1. `-DCMAKE_INSTALL_PREFIX=/usr/local/mysql8/`: 指定MySQL安装目录为`/usr/local/mysql8/`。这个目录将包含MySQL的所有组件,如二进制文件、
库和配置文件。
2. `-DDEFAULT_CHARSET=utf8`: 设定默认字符集为UTF-8。UTF-8是一种能够表示大多数文字的编码方式,适用于处理不同语言的数据。
3. `-DDEFAULT_COLLATION=utf8_general_ci`: 设定默认比较规则为`utf8_general_ci`。这是一个用于比较UTF-8字符串的规则,适用于大多数场景。
4. `-DENABLED_LOCAL_INFILE=ON`: 启用本地文件操作功能。这个选项允许MySQL从本地磁盘读取和写入数据。
5. `-DWITH_INNODB_MEMCACHED=ON`: 启用InnoDB存储引擎与Memcached集成。Memcached是一个高性能的内存对象缓存系统,可以提高MySQL的查询性能。

6. `-DWITH_SSL=system`: 使用系统提供的SSL库。这个选项允许MySQL使用安装在系统中的SSL库进行加密通信。
7. `-DWITH_INNOBASE_STORAGE_ENGINE=1`: 启用InnoDB存储引擎。InnoDB是MySQL默认的事务处理存储引擎,支持ACID特性和行级锁定。
8. `-DWITH_FEDERATED_STORAGE_ENGINE=1`: 启用联邦存储引擎。这个选项允许MySQL连接到其他MySQL服务器进行数据查询和操作。
9. `-DWITH_BLACKHOLE_STORAGE_ENGINE=1`: 启用黑洞存储引擎。这是一个虚拟存储引擎,不实际存储数据,可用于模拟其他存储引擎的行为。
10. `-DWITH_ARCHIVE_STORAGE_ENGINE=1`: 启用归档存储引擎。这个存储引擎用于保存不经常修改的数据,提高查询性能。
11. `-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1`: 禁用示例存储引擎。这个选项可以避免安装一个不常用的示例存储引擎。
12. `-DWITH_PERFSCHEMA_STORAGE_ENGINE=1`: 启用性能表存储引擎。这个存储引擎用于存储关于MySQL服务器的性能指标。
13. `-DCOMPILATION_COMMENT="zsd edition"`: 为编译过程添加注释。在这个例子中,注释设置为“zsd edition”,表示此版本是由"zsd"编译和配置的。

14. `-DWITH_BOOST=/usr/local/mysql8/mysql/boost/`: 启用Boost库并指定其安装路径。Boost是一个C++库集合,提供了各种功能和数据结构。MySQL使用Boost库进行一些特定的操作。

15. `-DMYSQL_UNIX_ADDR=/usr/local/mysql/3306/mysql.sock`: 指定MySQL Unix 地址为`/usr/local/mysql/3306/mysql.sock`。这个文件是用于Unix和
Linux系统上的MySQL通信使用的套接字文件,允许MySQL进程之间的通信。
16. `-DSYSCONFDIR=/usr/local/mysql/data/3306`: 指定MySQL的系统配置目录为`/usr/local/mysql/data/3306`。这个目录包含了MySQL服务器的数据文
件和配置文件。
17. `-DFORCE_INSOURCE_BUILD=1`: 强制使用内存源代码构建。这个选项可以确保在编译期间使用内存中的源代码,而不是从磁盘读取源代码。

4.4 编译并安装

[root@bogon mysql8]# make -j 2 #-j指定并发数,需要查看有多少个内核
[root@bogon mysql8]# make install 

4.5 创建MySQL主配置文件

[root@localhost ~]# cat /usr/local/mysql8/my.cnf 
[mysqld]
user        = mysql
basedir=/usr/local/mysql8/
datadir=/usr/local/mysql8/data
pid-file    = /usr/local/mysql8/data/mysqld.pid
socket        = /usr/local/mysql8/data/mysqld.sock
port        = 3306
tmpdir        = /tmp

五、初始化数据

[root@localhost mysql8]# bin/mysqld  --initialize  --user=mysql  --basedir=/usr/local/mysql8/ --datadir=/usr/local/mysql8/data

输出结果:
ly87rxds.png

六、启动数据库

[root@localhost mysql8]# bin/mysqld_safe   --defaults-file=/usr/local/mysql8/my.cnf  --user=mysql

描述

1.  --defaults-file # 指定mysql的主配置文件
2.  --user=mysql #指定管理数据库的用户

七、测试数据库

1.本地连接测试登录数据库

[root@localhost mysql-8.0.38]# bin/mysql  -uroot  -S  /usr/local/mysql8/data/mysqld.sock -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 8.0.38

Copyright (c) 2000, 2024, Oracle and/or its affiliates.

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> 

-S #指定mysql数据库的sock文件
0

评论 (0)

取消