centos源码编译安装Mysql8

崧峻
原创
发布时间: 2025-06-10 02:47:53 | 阅读数 0收藏数 0评论数 0
封面
在 CentOS 系统上通过源码编译安装 MySQL 8,可以让我们更灵活地定制数据库功能、优化性能参数,并充分了解其底层构建过程。相比使用 yum 或 rpm 包安装,源码编译虽然步骤更多,但能带来更高的可控性和学习价值。本文将详细介绍如何在 CentOS 系统中,从源码下载、依赖安装、编译配置。
1

下载安装包

官网网址为 https://downloads.mysql.com/archives/community/

  1. 进入到这个网址 选择版本号 源码安装 以及操作系统 如图1所示
  2. 往下翻 找到如图2所示的文件 要含boost的 然后点击下载
  3. 在/usr/local/ 下面创建一个文件夹 名为mysql 把刚刚下好的安装包放到这个下面 如图3所示
2

mysql系统用户

输入命令 groupadd mysql 创建用户组

输入命令 useradd -r -g mysql -s /bin/false mysql 创建用户 如图所示

  1. useradd:创建一个新的用户。
  2. -r:创建一个“系统用户(system user)”,通常用于系统服务进程,而非普通登录用户。系统用户的 UID 通常小于 1000(或具体系统设置)。
  3. -g mysql:指定用户所属的主组为 mysql。这个组必须已经存在。
  4. -s /bin/false:指定该用户的登录 shell 为 /bin/false,意思是禁止该用户登录系统
  5. mysql(最后这个):要创建的用户名,也叫 mysql
3

安装编译环境


先更新yum源

sudo yum update


然后 安装编译工具链 输入以下命令

sudo yum install -y \
gcc g++ cmake make \
libssl-dev libncurses-dev libtirpc-dev \
bison libaio-dev libjemalloc-dev \
pkg-config curl wget


这个可选择

sudo yum install -y openssl libcurl4-openssl-dev


安装完之后如图所示


4

解压

输入命令 sudo tar xzvf mysql-boost-8.3.0.tar.gz -C ./

参数解释:

  1. tar:Linux 中用于打包和解包 .tar 文件的命令。
  2. x:extract,表示解压。
  3. z:gzip,表示这个包是 .gz 压缩格式的,用 gzip 解压。
  4. v:verbose,解压过程中显示详细文件信息。
  5. f:file,表示后面跟的是文件名。
  6. mysql-boost-5.7.27.tar.gz:要解压的目标文件。
  7. -C /usr/local/:指定解压到的目录为 /usr/local/
5

编译

如果出现报错看步骤6

  1. 输入命令 mkdir -p build && cd build
  2. cd mysql-8.3.0/boost/ 进入到mysql的boost路径下 查看这个文件夹下面的文件名称 记住
  3. 预编译 成功如图2
  4. sudo cmake .. \

-DWITH_BOOST=boost/boost_1_77_0/ \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DSYSCONFDIR=/etc \

-DMYSQL_DATADIR=/usr/local/mysql/data \

-DINSTALL_MANDIR=/usr/share/man \

-DMYSQL_TCP_PORT=3306 \

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \

-DDEFAULT_CHARSET=utf8 \

-DEXTRA_CHARSETS=all \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_READLINE=1 \

-DWITH_SSL=system \

-DWITH_EMBEDDED_SERVER=1 \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DCMAKE_C_COMPILER=/usr/local/bin/gcc \

-DCMAKE_CXX_COMPILER=/usr/local/bin/g++


参数详解:

-DWITH_BOOST=boost/boost_1_77_0/ \刚刚查询到的boots 的路径

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ 安装目录

-DSYSCONFDIR=/etc \ 配置文件存放 (默认可以不安装配置文件)

-DMYSQL_DATADIR=/usr/local/mysql/data \ 数据目录 错误日志文件也会在这个目录

-DINSTALL_MANDIR=/usr/share/man \ 帮助文档

-DMYSQL_TCP_PORT=3306 \ 默认端口

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ sock文件位置,用来做网络通信的,客户端连接服务器的时候用

-DDEFAULT_CHARSET=utf8 \ 默认字符集。字符集的支持,可以调

-DEXTRA_CHARSETS=all \ 扩展的字符集支持所有的

-DDEFAULT_COLLATION=utf8_general_ci \ 支持的

-DWITH_READLINE=1 \ 上下翻历史命令

-DWITH_SSL=system \ 使用私钥和证书登陆(公钥) 可以加密。 适用与长连接。坏处:速度慢

-DWITH_EMBEDDED_SERVER=1 \ 嵌入式数据库

-DENABLED_LOCAL_INFILE=1 \ 从本地倒入数据,不是备份和恢复。

-DWITH_INNOBASE_STORAGE_ENGINE=1 默认的存储引擎,支持外键

-DCMAKE_C_COMPILER=/usr/local/bin/gcc \ gcc的路径

-DCMAKE_CXX_COMPILER=/usr/local/bin/g++ g++ 的路径


  1. 输入命令 sudo make -j 4 进行编译 如图3


6

解决问题

如图1所示的错误 是 cmake 版本太低了 需要升级版本

# 查看当前版本

cmake --version

# 如果存在低版本,则需要先删除当前版本

yum -y remove cmake

# 安装相关依赖

yum install -y gcc gcc-c++ build-essential autoconf libtool pkg-config

# 下载压缩包

wget https://cmake.org/files/v4.0/cmake-4.0.2.tar.gz --no-check-certificate

# 解压到某个目录下

tar -zxvf cmake-3.5.2.tar.gz

# 安装

cd cmake-4.0.2

./bootstrap

make install

# 验证是否安装成功

cmake --version


如图2所示的报错是gcc版本太低了 需要升级版本

1.安装依赖:yum -y install bzip2 gcc gcc-c++

2.下载二进制包:wget http://mirrors.hust.edu.cn/gnu/gcc/gcc-

10.5.0/gcc-10.5.0.tar.gz

3. 解压: tar zxvf gcc-10.5.0.tar.gz

4.进入目录:cd gcc-10.5.0

5.下载必要依赖:./contrlib/download prerequisites

创建编译目录:mkdir build && cd build

6.预编译:../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

7. 编译:make -j $( grep processor /proc/cpuinfo|wc -l)

8.安装:make instal1


7

初始化mysql

# cd /usr/local/mysql

# chown -R mysql.mysql .

# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data


---初始化完成之后,在最后一行会出现登录密码, 如图所示 红框圈出赖的部分

一定要记住提示最后的密码用于登陆或者修改密码 大家截图或者复制保存一份


然后更改配置文件大家自行更改即可 这边就不介绍了


8

修改密码

  1. 输入 mysql -u root -p 然后查看刚刚看的密码
  2. ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码'; 输入这个修改密码
  3. FLUSH PRIVILEGES; 使密码生效 如图所示
9

远程连接

  1. 首先记得关闭防火墙 服务器的 和云平台的都要关闭
  2. 连接服务器: mysql -u root -p
  3. 2. 输入密码后登录到mysql中
  4. 3. 查看所有数据库: show databases;
  5. 4. 进入mysql数据库: use mysql;
  6. 5. 查看mysql数据库中的表: show tables;
  7. 6. 查看user表中的host.user数据 : select Host, User from user;
  8. 7. 修改user表中的Host: update user set Host='%' where User='root';
  9. 8. 最后刷新一下: flush privileges;
阅读记录0
点赞0
收藏0
禁止 本文未经作者允许授权,禁止转载
猜你喜欢
评论/提问(已发布 0 条)
评论 评论
收藏 收藏
分享 分享
pdf下载 下载