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

相关推荐
旖旎夜光几秒前
Linux(13)(中)
linux·网络
威迪斯特40 分钟前
CentOS图形化操作界面:理论解析与实践指南
linux·运维·centos·组件·图形化·桌面·xserver
一方热衷.1 小时前
在线安装对应版本NVIDIA驱动
linux·运维·服务器
独自归家的兔1 小时前
ubuntu系统安装dbswitch教程 - 备份本地数据到远程服务器
linux·运维·ubuntu
ONE_SIX_MIX1 小时前
ubuntu 24.04 用rdp连接,桌面黑屏问题,解决
linux·运维·ubuntu
龙飞051 小时前
Systemd -systemctl - journalctl 速查表:服务管理 + 日志排障
linux·运维·前端·chrome·systemctl·journalctl
*小海豚*1 小时前
在linux服务器上DNS正常,但是java应用调用第三方解析域名报错
java·linux·服务器
June`1 小时前
muduo项目排查错误+测试
linux·c++·github·muduo网络库
消失的旧时光-19431 小时前
Linux 编辑器入门:nano 与 vim 的区别与选择指南
linux·运维·服务器
晓13131 小时前
第七章 【C语言篇:文件】 文件全面解析
linux·c语言·开发语言