一、主机信息
[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
二、下载源码包
三、创建管理目录且解压
[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
输出结果:
六、启动数据库
[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)