服务器测评网
我们一直在努力

Linux mysql源码包安装步骤详解与常见问题解决指南

Linux环境下MySQL源码包安装前的准备工作

在Linux系统中通过源码包安装MySQL,相较于二进制包或RPM包,能提供更高的自定义性和灵活性,但过程相对复杂,安装前需确保系统环境满足要求,并完成必要的准备工作。

Linux mysql源码包安装步骤详解与常见问题解决指南

系统环境检查

MySQL源码编译对系统依赖和硬件资源有一定要求,建议使用稳定的Linux发行版,如CentOS 7+、Ubuntu 18.04+等,核心检查项包括:

  • 操作系统版本:通过uname -r确认内核版本,推荐3.10以上;
  • 编译工具:安装GCC、CMake、Make等编译工具,例如在CentOS中执行yum groupinstall "Development Tools",Ubuntu中执行apt install build-essential
  • 依赖库:MySQL依赖ncurses-developenssl-devellibcurl-devel等库,需提前安装(CentOS:yum install ncurses-devel openssl-devel libcurl-devel;Ubuntu:apt install libncurses5-dev libssl-dev libcurl4-openssl-dev);
  • 磁盘空间:确保根目录或/usr/local有至少5GB可用空间,用于存放源码和编译后的文件。

用户与权限配置

MySQL运行需独立用户,避免使用root账户,执行以下命令创建MySQL用户和用户组:

groupadd mysql  
useradd -r -g mysql mysql  

其中-r表示系统用户,不创建家目录,后续编译和安装过程建议使用普通用户(如mysql)或sudo提权,避免直接使用root操作。

下载MySQL源码包

从MySQL官网(https://dev.mysql.com/downloads/mysql/)下载最新稳定版源码包,选择“Source Code”类型的tar.gz压缩包,例如下载MySQL 8.0.34版本:

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-8.0.34.tar.gz  

boost库是MySQL 8.0编译的必需依赖,官方已集成在源码包中,无需单独下载。

MySQL源码包的编译与安装

完成准备工作后,进入源码编译阶段,核心步骤包括解压、配置、编译和安装。

解压源码包

将下载的源码包解压至指定目录(如/usr/local/src):

tar -xvf mysql-boost-8.0.34.tar.gz -C /usr/local/src  
cd /usr/local/src/mysql-8.0.34  

配置编译参数

使用CMake工具配置编译选项,这是源码安装的关键步骤,常用参数说明:

Linux mysql源码包安装步骤详解与常见问题解决指南

  • -DCMAKE_INSTALL_PREFIX:安装路径,默认/usr/local/mysql
  • -DMYSQL_DATADIR:数据存储路径,建议单独设置(如/data/mysql);
  • -DDEFAULT_CHARSET:默认字符集,推荐utf8mb4
  • -DDEFAULT_COLLATION:默认排序规则,推荐utf8mb4_general_ci
  • -DWITH_BOOST:指定boost库路径(已集成则无需手动设置);
  • -DWITH_SSL:启用SSL支持(默认开启)。

示例配置命令:

cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/mysql \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_BOOST=boost \
-DWITH_SSL=yes  

若配置失败(如依赖缺失),可通过make clean清理后重新执行。

编译与安装

配置完成后,执行编译和安装命令,编译过程耗时较长,根据服务器性能可能需要10-30分钟:

make -j$(nproc)  # 使用多核并行编译,加快速度  
make install     # 安装到指定路径  

编译完成后,检查/usr/local/mysql目录是否存在,确认安装成功。

MySQL初始化与启动配置

源码安装后,需进行初始化配置,包括数据目录权限、配置文件创建、服务启动等步骤。

创建数据目录并授权

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

初始化MySQL数据目录

使用mysqld工具初始化数据库,生成系统表和临时密码:

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

记录初始化日志中的临时密码(通常在~/.mysql_secret或日志末尾)。

创建配置文件

MySQL源码包默认不提供my.cnf,需手动创建,建议在/etc目录下创建:

Linux mysql源码包安装步骤详解与常见问题解决指南

vim /etc/my.cnf  
```  参考(根据实际需求调整):  
```ini
[mysqld]
basedir = /usr/local/mysql
datadir = /data/mysql
port = 3306
socket = /tmp/mysql.sock
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
default_authentication_plugin = mysql_native_password
[client]
port = 3306
socket = /tmp/mysql.sock
default-character-set = utf8mb4

配置系统服务

创建systemd服务文件,实现开机自启和便捷管理:

vim /etc/systemd/system/mysqld.service  
```  如下:  
```ini
[Unit]
Description=MySQL Server
After=network.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target

启动服务并设置开机自启:

systemctl daemon-reload  
systemctl start mysqld  
systemctl enable mysqld  

修改root密码与安全配置

首次登录需使用临时密码:

/usr/local/mysql/bin/mysql -u root -p  

登录后执行以下命令修改密码(替换YourNewPassword):

ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPassword';  
FLUSH PRIVILEGES;  

运行mysql_secure_installation脚本,完成匿名用户删除、测试库移除等安全配置。

常见问题与注意事项

  1. 编译失败:检查依赖库是否完整,可通过yumapt安装缺失组件;
  2. 权限问题:确保mysql用户对数据目录和安装目录有读写权限;
  3. 端口冲突:若3306端口被占用,修改my.cnf中的port参数;
  4. 字符集乱码:确认配置文件中character-set-servercollation-server设置正确;
  5. 服务无法启动:检查mysqld.log日志(通常在/data/mysql/usr/local/mysql/data),定位错误原因。

通过以上步骤,即可完成Linux环境下MySQL源码包的安装与配置,相较于预编译包,源码安装虽复杂,但能根据实际需求优化编译选项,适合对性能和功能有定制化要求的场景。

赞(0)
未经允许不得转载:好主机测评网 » Linux mysql源码包安装步骤详解与常见问题解决指南