Skip to content

Menu
  • Home
  • 文章
    • 监控
      • 自己开发的监控服务
    • MQ
      • rabbitmq
    • Database
      • Mysql
      • redis
  • 常用脚本
    • shell
      • 系统初始化
      • jdk安装
  • 资源
    • 豆包
    • ChatGPT
    • 哔哩哔哩
    • CSDN
    • 百度
    • Github
    • 阿里镜像源
    • 腾讯云
  • 联系方式
  • 关于本站
Menu

centos7.2009源码编译MySQL8.0

Posted on 2025年11月20日2025年11月20日 by rangrang

1.基础准备(防火墙/SELinux/常用工具)

# 可选:关闭防火墙(实验环境)
systemctl stop firewalld
systemctl disable firewalld

# 可选:关闭 SELinux(需要重启一次)
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
[root@server2 ~]# cat /etc/yum.repos.d/CentOS-Vault.repo 
[base]
name=CentOS-7 - Base
baseurl=http://vault.centos.org/7.9.2009/os/x86_64/
gpgcheck=0
enabled=1
gpgkey=http://vault.centos.org/7.9.2009/os/x86_64/RPM-GPG-KEY-CentOS-7

[updates]
name=CentOS-7 - Updates
baseurl=http://vault.centos.org/7.9.2009/updates/x86_64/
gpgcheck=0
enabled=1
gpgkey=http://vault.centos.org/7.9.2009/os/x86_64/RPM-GPG-KEY-CentOS-7

[extras]
name=CentOS-7 - Extras
baseurl=http://vault.centos.org/7.9.2009/extras/x86_64/
gpgcheck=0
enabled=1
gpgkey=http://vault.centos.org/7.9.2009/os/x86_64/RPM-GPG-KEY-CentOS-7

[centos-sclo-rh]
name=CentOS-7 - SCLo rh
baseurl=http://vault.centos.org/7.9.2009/sclo/x86_64/rh/
gpgcheck=0
enabled=1
gpgkey=http://vault.centos.org/7.9.2009/os/x86_64/RPM-GPG-KEY-CentOS-7

[centos-sclo-sclo]
name=CentOS-7 - SCLo sclo
baseurl=http://vault.centos.org/7.9.2009/sclo/x86_64/sclo/
gpgcheck=0
enabled=1
gpgkey=http://vault.centos.org/7.9.2009/os/x86_64/RPM-GPG-KEY-CentOS-7

# 常用工具
yum install -y vim bash-completion net-tools wget bzip2 ncurses-devel openssl* devtoolset-11-gcc devtoolset-11-gcc-c++ devtoolset-11-binutils

#启用 devtoolset-11
scl enable devtoolset-11 bash
gcc --version
gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9)
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
cd /usr/local/src
wget https://archives.boost.io/release/1.77.0/source/boost_1_77_0.tar.bz2
tar xvf boost_1_77_0.tar.bz2 
mv boost_1_77_0 boost

tar zxvf cmake-3.27.9.tar.gz
cd cmake-3.27.9
./bootstrap
make -j$(nproc)
make install 
[root@server2 cmake-3.27.9]# cmake --version
cmake version 3.27.9


2.安装 cmake3 boost

3.编译MySQL

cd /usr/local/src
tar zxvf mysql-8.0.40.tar.gz
mkdir -p mysql_build
cd mysql_build
cmake ../mysql-8.0.40   -DCMAKE_INSTALL_PREFIX=/usr/local/mysql   -DMYSQL_DATADIR=/data/mysql/data   -DSYSCONFDIR=/etc   -DWITH_SSL=system   -DWITH_ZLIB=bundled   -DWITH_BOOST=/usr/local/src/boost   -DDOWNLOAD_BOOST=OFF   -DDEFAULT_CHARSET=utf8mb4   -DDEFAULT_COLLATION=utf8mb4_0900_ai_ci   -DWITH_INNOBASE_STORAGE_ENGINE=1   -DWITH_PARTITION_STORAGE_ENGINE=1   -DWITH_BLACKHOLE_STORAGE_ENGINE=1   -DWITH_ARCHIVE_STORAGE_ENGINE=1   -DENABLED_LOCAL_INFILE=1   -DWITH_DEBUG=0
make -j 6 && make install


4.编辑配置文件

vim /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql #mysql安装目录
datadir=/data/mysql/data #mysql数据存放目录 
port=3306 #mysql监听端口 
socket=/usr/local/mysql/mysql.sock #mysql.sock文件存放目录 
symbolic-links=0 #关闭mysql的符号链接 
character-set-server=utf8 #指定mysql的字符集为utf8 
log-error=/data/mysql/log/mysqld.log #指定mysql的错误日志存放路径
pid-file=/usr/local/mysql/mysqld.pid #mysql的pid文件存放目录 #default_authentication_plugin=mysql_native_password #设置默认认证插件 authentication_policy=mysql_native_password #控制多因素认证策略
[client]
socket=/usr/local/mysql/mysql.sock port=3306

5.设置服务启动用户

groupadd mysql
useradd -r -g mysql -s /bin/false mysql

mkdir -p /data/mysql/data
chown -R mysql:mysql /data/mysql
chown -R mysql:mysql /usr/local/mysql

6.初始化数据库

mkdir -p /data/mysql/{log,data}
chown -R mysql:mysql /data/mysql

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

7.编辑服务管理脚本

sudo tee /etc/systemd/system/mysqld.service << 'EOF'
[Unit]
Description=MySQL Server 8.0
After=network.target syslog.target

[Service]
Type=notify
User=mysql
Group=mysql

# 直接以 mysqld 启动,最稳定
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf

ExecStop=/usr/local/mysql/bin/mysqladmin --defaults-file=/etc/my.cnf -u root shutdown

LimitNOFILE=65535
Restart=on-failure
RestartSec=3

[Install]
WantedBy=multi-user.target
EOF


systemctl daemon-reload
systemctl restart mysqld
systemctl status mysqld


ln -s /usr/local/mysql/bin/* /usr/bin/


查看初始密码
cat /data/mysql/log/mysqld.log |grep root@localhost
修改root密码
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '654321';


发表回复 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

网站统计

本站已运行:5 天

文章总数:9 篇

分类:6 个 · 标签:6 个

最后更新:2025-11-22

一句话

记录每一次踩坑,帮后来人少踩一个坑。

持续学习 · 持续输出 · 持续复盘。

友情链接

  • 新华社
  • 人民网
  • 中国网
© 2025 | Powered by Superbs Personal Blog theme