手动编译安装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密码、删除匿名用户等。

相关推荐
笑稀了的野生俊19 分钟前
ImportError: /lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.32‘ not found
linux·人工智能·ubuntu·大模型·glibc·flash-attn
千帐灯无此声32 分钟前
Linux 测开:日志分析 + 定位 Bug
linux·c语言·c++·bug
誰能久伴不乏41 分钟前
深入了解 Vim 编辑器:从入门到精通
linux·编辑器·vim
ghie90901 小时前
在Centos系统上如何有效删除文件和目录的指令汇总
linux·运维·centos
Linux-palpitate1 小时前
Keepalived+LVS实现LNMP网站的高可用部署
linux·运维·服务器·mysql·lvs
潇-xiao1 小时前
进程状态 + 进程优先级切换调度-进程概念(5)
linux·笔记
江公望3 小时前
Linux kernel regcache_cache_only()函数详解
linux
liuyunluoxiao3 小时前
基于生产者消费者模型的线程池【Linux操作系统】
linux
程序员黄老师4 小时前
Ubuntu 24.04上安装 Intelligent Pinyin 中文输入法
linux·运维·ubuntu
HONG_YANG4 小时前
ERPNext 介绍、安装和维护建议
linux