公告

👇微信扫码添加好友👇

Skip to content

第二步 Mysql 数据库编译安装

一、简介

MySQL是最流行的关系型数据库管理系统之一,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。因其性能高、可靠性强和易用性高而在各种应用中得到广泛应用。

MYSQL 的编译安装使用 CMAKE 来完成,它是一款跨平台的开源的构建系统,用于管理软件的编译过程。它可以通过简单的配置文件(CMakeLists.txt)来描述项目的构建过程,生成适合本地平台的原生构建文件。它比传统的编译安装更加灵活和方便。

之前有写过 MYSQL for Windows 直装教程:Mysql for Windows 安装及初始化 ,但是企业级服务器部署中,为了提高性能并满足自定义配置,基本是要求编译安装。

二、环境准备

MYSQL 编译安装对系统要求较高,推荐 4C8G 60G 配置。本次演示使用 AlmaLinux9 + mysql 8.0.37,系统配置为 16C 32G。可能好还需要提前配置阿里云 YUM 源等。

三、安装

2.1 下载

安装包下载页面:MySQL :: Download MySQL Community Server ,本文章以 MYSQL-8.0.37 举例,下载文件带boost的源码包:mysql-boost-8.0.37.tar.gz ,推荐解压到 /usr/src ,解压后目录结构如下:

text
boost            Doxyfile-ignored     libchangestreams  packaging          sql-common
client           Doxyfile.in          libmysql          plugin             storage
cmake            doxygen_resources    libservices       README             strings
CMakeLists.txt   extra                LICENSE           router             support-files
components       include              man               run_doxygen.cmake  testclients
config.h.cmake   INSTALL              mysql-test        scripts            unittest
configure.cmake  libbinlogevents      MYSQL_VERSION     share              utilities
Docs             libbinlogstandalone  mysys             sql                vio

2.2 编译检查

Mysql 编译安装使用 CMAKE 构建工具,CMAKE 是依赖于c语言的,所以我们首先必须安装 CMAKE 及其依赖:

bash
 yum -y install cmake gcc g++ gcc-toolset-12

CMAKE 安装之后,即可开始编译安装,编译安装选项不是固定的,你完全可以按照阅读官方文档MySQL 8 Build Options 并自行增删,这就是编译安装最大的魅力所在。以下是我的编译安装选项

bash
cmake3 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_INNODB_MEMCACHED=1 \
-DWITH_DEBUG=OFF \
-DWITH_ZLIB=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DENABLED_PROFILING=ON \
-DMYSQL_MAINTAINER_MODE=OFF \
-DMYSQL_TCP_PORT=3306 \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/src/mysql-8.0.37/boost  \
-DFORCE_INSOURCE_BUILD=1

其他教程可能会给出一堆的 yum 安装,但是其中可能会有一些不需要的依赖,所以一般都是在执行 CMAKE 编译检查命令时,遇到报错缺少依赖再去安装,如下图:

image-20240612162753836

根据图片我们可以发现,系统缺少 libtirpc-devel 软件包,此时即可按照提示安装该软件包后重新执行 CMAKE 命令。经过我的测试,以下依赖需要安装:

bash
 yum -y install openssl-devel ncurse-devel libtirpc-devel rpcgen

只要看到如下内容,即可证明通过了编译安装检查,接下来你就可以开始安装了。

-- Configuring done (2.3s)
-- Generating done (2.7s)
-- Build files have been written to: /usr/src/mysql-8.0.37

2.3 开始安装

编译安装是个很久很漫长的过程,一定要注意留足60G左右的存储空间,否则可能会编译一个小时提示空间不足。如果你的配置足够高,可以为 make 添加 -j 选项来开启多线程,这里选择使用16线程来编译。

执行命令:make -j16 && make install

然后就是漫长的等待了。

四、启动

4.1 配置文件

配置文件:/etc/my.cnf

ini
[mysqld]

user = mysql
basedir = /usr/local/mysql
datadir=/data/mysql_dev # 不指定就在 $basedir/data 下
lower_case_table_names=1 # 忽略大小写

这么多就够了。

4.2 用户和用户组

bash
groupadd mysql
# 不创建HOME目录,并不允许登录
useradd -M -g mysql -s /sbin/nologin -d /usr/local/mysql mysql

chown -R mysql.mysql /usr/local/mysql

4.3 环境变量

推荐为 MYSQL 添加一个系统环境变量,编辑/etc/profile,并写入如下内容:

bash
export PATH=$PATH:/usr/local/mysql/bin/

4.4 初始化

cd /usr/local/mysql/

./bin/mysqld --user=mysql --initialize -defaults-file=/etc/my.cnf

执行命令后,会获得一个临时密码,此密码强制要求登录后修改。

4.5 启动

启动命令:mysqld &

五、连接测试

Mysql 服务启动后,即可进行连接:./mysql -uroot -ppassWord

以下命令修改密码:

mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'PASSWORD';

参考资料