手动编译安装MySQL

手动编译安装MySQL

准备环境

首先,确保您的系统安装了编译MySQL所需的依赖项,如GCC、make等,以及MySQL编译过程中可能需要的库文件。

对于Debian/Ubuntu系统,您可以使用以下命令安装这些依赖:

bash 复制代码
sudo apt-get update
sudo apt-get install build-essential cmake libncurses5-dev libssl-dev

对于RedHat/CentOS系统,使用:

bash 复制代码
sudo yum groupinstall "Development Tools"
sudo yum install cmake ncurses-devel openssl-devel

下载MySQL源代码

从MySQL官方网站或GitHub仓库下载您希望安装的MySQL版本的源代码。以MySQL 8.0为例,您可以访问MySQL官方网站下载页面或使用wget命令下载:

bash 复制代码
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.29.tar.gz

解压源代码包

bash 复制代码
tar -zxvf mysql-8.0.29.tar.gz
cd mysql-8.0.29

编译和安装

  1. 创建一个目录用于MySQL的编译输出:
bash 复制代码
mkdir build
cd build
  1. 运行cmake来配置MySQL编译选项:
bash 复制代码
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1

这条命令指定了一些常用的编译选项,如安装路径、字符集、启用的存储引擎等。您可以根据需要调整这些选项。

  1. 编译MySQL:
bash 复制代码
make
  1. 安装MySQL:
bash 复制代码
sudo make install

配置MySQL

  1. 添加MySQL用户:
bash 复制代码
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
  1. 将安装目录的所有者改为MySQL用户:
bash 复制代码
sudo chown -R mysql:mysql /usr/local/mysql
  1. 初始化数据库:
bash 复制代码
cd /usr/local/mysql
sudo bin/mysqld --initialize --user=mysql
  1. 复制配置文件和启动脚本:
bash 复制代码
sudo cp support-files/my-default.cnf /etc/my.cnf
sudo cp support-files/mysql.server /etc/init.d/mysql
  1. 启动MySQL服务器:
bash 复制代码
sudo service mysql start
  1. 设置环境变量(可选):

将MySQL目录添加到您的PATH环境变量中,以方便运行MySQL命令:

bash 复制代码
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> ~/.bash_profile
source ~/.bash_profile

完成

至此,您已经完成了MySQL的手动编译安装过程。接下来,您可以使用mysql_secure_installation脚本来进一步配置MySQL的安全选项,包括设置root密码、删除匿名用户等。

相关推荐
辞旧 lekkk1 天前
【Qt】信号和槽
linux·开发语言·数据库·qt·学习·mysql·萌新
liuhuizuikeai1 天前
可视化门禁---Linux/Qt+SqLite篇
linux·运维·qt
初願致夕霞1 天前
基于系统调用的Linux网络编程——UDP与TCP
linux·网络·c++·tcp/ip·udp
charlie1145141911 天前
嵌入式Linux驱动开发——新 API 字符设备驱动完整教程 - 从设备结构体到应用测试
linux·运维·驱动开发
消失的旧时光-19431 天前
C语言对象模型系列(四)《Linux 内核里的 container_of 到底是什么黑魔法?》—— 一篇讲透 Linux 内核的“对象模型”核心技巧
linux·c语言·算法
SWAGGY..1 天前
Linux系统编程:(二)基础指令详解
linux·运维·服务器
kdxiaojie1 天前
U-Boot分析【学习笔记】(3)
linux·笔记·学习
烛衔溟1 天前
TypeScript 接口继承与混合类型
linux·ubuntu·typescript
蜡笔婧萱1 天前
Linux--远程登录服务ssh
linux·服务器·ssh
伏加特遇上西柚1 天前
Loki+Alloy+Grafana日志采集部署
java·linux·服务器·spring boot·grafana·prometheus