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;
相关推荐
.Shu.1 小时前
Mysql InnoDB 底层架构设计、功能、原理、源码系列合集【五、InnoDB 高阶机制与实战调优】
数据库·mysql
新法国菜3 小时前
MySql知识梳理之DDL语句
数据库·mysql
DarkAthena3 小时前
【GaussDB】全密态等值查询功能测试及全密态技术介绍
数据库·gaussdb
ShawnLeiLei4 小时前
2.3 Flink的核心概念解析
数据库·python·flink
石皮幼鸟5 小时前
数据完整性在所有场景下都很重要吗?
数据库·后端
大只鹅5 小时前
Centos7.9 Docker26容器化部署 MySql9.4 一主一从的同步复制部署
mysql·centos
叁沐6 小时前
MySQL 28 读写分离有哪些坑?
mysql
nightunderblackcat6 小时前
新手向:异步编程入门asyncio最佳实践
前端·数据库·python
DarkAthena6 小时前
【GaussDB】使用MySQL客户端连接到GaussDB的M-Compatibility数据库
数据库·mysql·gaussdb
livemetee7 小时前
Flink2.0学习笔记:使用HikariCP 自定义sink实现数据库连接池化
大数据·数据库·笔记·学习·flink