在centOS源码编译方式安装MySQL5.7

一、前言

在生产环境中部署数据库时,很多人会选择直接使用 yum/apt 包管理器 安装 MySQL,这样简单快速,但缺点是版本受限,灵活性不足。对于需要指定版本、启用特定编译参数或优化的场景,源码编译安装 MySQL 就显得非常必要。

本文将以 CentOS 7 为例,演示如何从源码编译安装 MySQL 5.7,包括环境准备、依赖安装、源码编译、初始化配置以及服务启动等完整流程。

二、安装准备

安装包自行到官网下载或其他网站下载。

安装包上传路径我们选择/usr/local,如图:

(1)解压安装包

将mysql解压到/usr/local/,执行如下命令:

bash 复制代码
tar -zxvf mysql-5.7.44-el7-x86_64.tar.gz

将mysql-5.7.44-el7-x86_64目录改名为mysql

bash 复制代码
mv mysql-5.7.44-el7-x86_64 mysql

(2)安装流程/步骤

由于MySQL 服务进程一般不会用 root 用户直接运行 ,而是以一个专门的 mysql 用户来管理,保证安全性。

bash 复制代码
cat /etc/group | grep mysql  -- 出现 mysql : x : 490 : 即为存在组
cat /etc/passwd | grep mysql -- 出现mysql:x:496:490::/home/mysql:/bin/bash 即为存在用户

不存在则添加

bash 复制代码
groupadd mysql
useradd -r -g mysql mysql

创建文件夹:软件放 /usr/local/mysql数据放 /data/mysql,

local下创建mysql(已有可不创建),根目录创建data/mysql

bash 复制代码
sudo mkdir -p /usr/local/mysql
sudo chown -R mysql:mysql /usr/local/mysql

# 在根目录下新建 data 目录(如果还没有)
sudo mkdir -p /data/mysql

# 修改权限为 mysql 用户
sudo chown -R mysql:mysql /data/mysql

准备就绪后,执行初始化mysql,会随机生成mysql的root密码。及时复制保存随机密码。

bash 复制代码
/usr/local/mysql/bin/mysqld --initialize --user=mysql \
  --basedir=/usr/local/mysql \
  --datadir=/data/mysql

如果不想随机生成密码,则执行以下命令,后续需要自行设置密码。建议直接随机密码后续修改即可。

bash 复制代码
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql \
  --basedir=/usr/local/mysql \
  --datadir=/data/mysql

至此,安装算是完成了,但还需要做各种配置。

(3)系统设置和配置文件修改

初始化启动脚本开机初始化目录

bash 复制代码
cp ./support-files/mysql.server /etc/init.d/mysqld

chmod +x /etc/init.d/mysqld

修改配置文件,配置文件默认在/etc/my.cnf,如果没有则创建。

bash 复制代码
vim /etc/my.cnf

配置文件内容:

XML 复制代码
[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql-error.log
pid-file=/data/mysql/mysql.pid

如图:

再次确保目录权限正确:

bash 复制代码
chown -R mysql:mysql /data/mysql

启动mysql:

bash 复制代码
service mysqld start

如出现以上图中内容,则表示mysql已经启动成功。

进一步验证:

bash 复制代码
ps -ef | grep mysqld

测试开机自启动:

bash 复制代码
# 重启服务测试
service mysqld restart

# 或者查看是否开机自启
chkconfig --list mysqld

如图则表示可以开机自启动了

(4)其他注意事项或配置

登录mysql

bash 复制代码
# 如果使用 --initialize
/usr/local/mysql/bin/mysql -u root -p

# 使用 --initialize-insecure 不需要密码
/usr/local/mysql/bin/mysql -u root

登录后如图:

到这里,安装就完成了。需要修改随机密码,则执行下面命令:

bash 复制代码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';

开放远程访问和连接请参考:

https://blog.csdn.net/ts977/article/details/145884849?spm=1001.2014.3001.5501

设置自动备份请参考:

https://blog.csdn.net/ts977/article/details/144748311?spm=1001.2014.3001.5501

相关推荐
上学的小垃圾18 小时前
基于docker安装MySQL(openEuler系统)
linux·mysql·docker·容器
一直C20 小时前
Linux网络编程|HTTP协议详解(报文、请求方法、状态码)
linux·http·wireshark·vim·visual studio
爱喝水的鱼丶20 小时前
SAP-ABAP:ABAP 用户出口开发规范与避坑指南:10 类典型错误与运维方案
运维·性能优化·sap·abap·增强·经验交流·出口
博、、20 小时前
从零构建智慧场馆解决方案:架构设计与开发实践
大数据·运维
敢敢是只喵i21 小时前
给现有业务系统接 AI 助手,入口怎么选?网页聊天、自动化任务与本地 Agent 对比
运维·人工智能·ai·开源·自动化·安全架构
章老师说1 天前
BFE v1.8.6 正式发布:AI 网关计费精细化、Claude 协议与会话亲和性升级
运维·人工智能·ai·负载均衡·ai-native
Brilliantwxx1 天前
【Linux】 进程(10) 进程控制深度解析:创建、终止与等待
linux·运维·服务器·c语言·开发语言·网络
欧米欧1 天前
Linux基础指令上
linux·运维·服务器
爱喝水的鱼丶1 天前
SAP-ABAP:BAdI 上下文数据获取与交互:标准数据读取与修改逻辑实现
运维·性能优化·sap·abap·增强·经验交流·badi
ARM|X86+FPGA工业主板厂家1 天前
基于嵌入式 GPU 的智能服务机器人
linux·运维·arm开发·fpga开发·机器人