MySQL5.7源码编译安装

查看是否安装过mysql软件包

复制代码
rpm -qa|grep mysql
rpm -qa|grep mariadb
rpm -e --nodeps mysql的软件包名

建立mysql账号

复制代码
useradd -s /sbin/nologin -M mysql

安装依赖包

复制代码
yum install -y gcc
yum install -y gcc-c++
yum install -y ncurses
yum install -y bison
yum install -y git
yum install -y make
yum install -y cmake
yum install -y openssl
yum install -y openssl-devel
yum install -y ncurses-devel
yum install -y libtirpc libtirpc-devel
yum install -y libarchive
yum install -y rpcgen
yum install -y rpcgen-devel

解压源码包

复制代码
tar -zxvf mysql-5.7.43.tar.gz
tar -zxvf mysql-boost-5.7.43.tar.gz
cd mysql-5.7.43

编译

复制代码
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_BOOST=/home/mysql-5.7.43/boost/boost_1_59_0

注:当带参数-DWITH_SYSTEMD=1时,编译后没有mysqld_safe守护进程

MySQL源码编译常用选项说明

源码配置选项 描述
CMAKE_INSTALL_PREFIX 软件安装目录
INSTALL_LAYOUT 选择预定义的安装布局
MYSQL_DATADIR 数据目录
DEFAULT_CHARSET 默认服务器
DEFAULT_COLLATION 默认服务器排序规则
INSTALL_SECURE_FILE_PRIVDIR SQL导出目录
ENABLED_LOCAL_INFILE 是否启用本地方式加载数据
MYSQL_TCP_PORT TCP/IP端口
SYSCONFDIR 选项文件
MYSQL_UNIX_ADDR Unix套接字文件
WITH_SYSTEMD 启用安装systemd支持文件
SYSTEMD_SERVICE_NAME systemd下MySQL服务的名称
SYSTEMD_PID_DIR systemd下PID文件的目录
COMPILATION_COMMENT 关于编译环境的描述
WITH_BOOST Boost库源码的位置
WITH_ARCHIVE_STORAGE_ENGINE 将存储引擎ARCHIVE静态编译至服务器
WITH_BLACKHOLE_STORAGE_ENGINE 将存储引擎BLACKHOLE静态编译至服务器
WITH_PERFSCHEMA_STORAGE_ENGINE 将存储引擎PERFSCHEMA静态编译至服务器
WITH_EXAMPLE_STORAGE_ENGINE 将存储引擎EXAMPLE静态编译至服务器
WITH_FEDERATED_STORAGE_ENGINE 将存储引擎FEDERATED静态编译至服务器
WITH_PARTITION_STORAGE_ENGINE 将存储引擎PARTITION静态编译至服务器

MySQL源码编译常用选项自定义设置

源码配置选项 默认值 定制值
CMAKE_INSTALL_PREFIX /usr/local/mysql
MYSQL_DATADIR /data
DEFAULT_CHARSET latin1 utf8mb4
DEFAULT_COLLATION latin2_swedish_ci utf8mb4_general_ci
INSTALL_SECURE_FILE_PRIVDIR platform specific /mysql/product/mysql-files
ENABLED_LOCAL_INFILE OFF ON
MYSQL_TCP_PORT 3305
SYSCONFDIR /etc
MYSQL_UNIX_ADDR /tmp/mysql.sock
WITH_BOOST /boost_1_59_0
WITH_ARCHIVE_STORAGE_ENGINE 1
WITH_BLACKHOLE_STORAGE 1
WITH_PERFSCHEMA_STORAGE_ENGINE 1
WITH_EXAMPLE_STORAGE_ENGINE 1
WITH_FEDERATED_STORAGE_ENGINE 1
WITH_PARTITION_STORAGE_ENGINE 1

创建路径

复制代码
mkdir /data
mkdir /usr/local/mysql/data

安装

复制代码
make -j 4 && make install

配置my.cnf

复制代码
[mysqld]
# 设置端口
port=3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库数据存放路径
datadir=/data
# 允许最大连接数
max_connections=200
# 服务端默认字符集
character-set-server=utf8mb4
# 默认排序规则
collation-server=utf8mb4_general_ci
# 默认存储引擎
default-storage-engine=INNODB

# 开启二进制日志
log-bin=mysql-bin
# 服务器ID
server-id=1
# 跳过所有复制错误
slave-skip-errors=all

赋权

复制代码
chown mysql:mysql -R /data
chown mysql:mysql -R /usr/local/mysql

初始化

复制代码
cd /usr/local/mysql
./bin/mysqld --initialize --user-mysql

cp ./support-files/mysql.server /etc/init.d/mysqld
chkconfig mysqld on

重置密码

复制代码
mysql> set PASSWORD=PASSWORD('密码');
mysql> flush privileges;
相关推荐
一勺菠萝丶7 分钟前
管理后台使用手册在线预览与首次登录引导弹窗实现
java·前端·数据库
无忧智库11 分钟前
某大型银行“十五五”金融大模型风控与智能投顾平台建设方案深度解读(WORD)
数据库·金融
爱码小白12 分钟前
数据库多表命名的通用规范
数据库·python·mysql
huohuopro27 分钟前
Hbase伪分布式远程访问配置
数据库·分布式·hbase
XDHCOM39 分钟前
ORA-12169: TNS连接标识符过长,Oracle报错故障修复与远程处理
数据库·oracle
爬山算法1 小时前
MongoDB(86)如何使用MongoDB存储大文件?
数据库·mongodb
xcLeigh1 小时前
KES数据库表空间目录自动创建特性详解与存储运维最佳实践
大数据·运维·服务器·数据库·表空间·存储
小陈工1 小时前
2026年4月8日技术资讯洞察:边缘AI推理框架竞争白热化,Python后端开发者的机遇与挑战
开发语言·数据库·人工智能·python·微服务·回归
wb1891 小时前
NoSQL数据库Redis集群重习
数据库·redis·笔记·云计算·nosql
许杰小刀1 小时前
MyBatis-Plus实战:Spring Boot数据库操作效率提升10倍
数据库·spring boot·mybatis