在CentOS上安装MySQL源码是一个详细且复杂的过程,但通过以下步骤可以顺利完成,本文将详细介绍每一步操作,包括准备工作、下载源码、编译安装、配置MySQL以及登录设置等,文章末尾还提供了两个FAQ问题及其解答,以便读者更好地理解和操作。
一、准备工作
确保你的CentOS系统已更新到最新状态,并安装了必要的编译工具,使用以下命令进行更新和安装:
sudo yum update y sudo yum install y gccc++ cmake make
这些工具是编译MySQL源码所必需的。
二、下载MySQL源码
从MySQL官方网站下载MySQL的源代码包,假设我们要安装MySQL 8.0.29,可以使用如下命令:
wget https://cdn.mysql.com//Downloads/MySQL8.0/mysql8.0.29.tar.gz tar xzvf mysql8.0.29.tar.gz cd mysql8.0.29
三、编译安装MySQL
1. 配置编译参数
在编译MySQL之前,需要配置编译参数,这一步非常重要,因为它决定了MySQL的功能和性能,使用cmake
命令进行配置:
cmake \ DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ DDEFAULT_CHARSET=utf8mb4 \ DDEFAULT_COLLATION=utf8mb4_unicode_ci \ DWITH_EXTRA_CHARSETS=all \ DWITH_MYISAM_STORAGE_ENGINE=1 \ DWITH_INNOBASE_STORAGE_ENGINE=1 \ DWITH_PARTITION_STORAGE_ENGINE=1 \ DWITH_READLINE=1 \ DWITH_ZLIB=system \ DWITH_LIBWRAP=0 \ DWITH_DEBUG=0 \ DENABLED_LOCAL_INFILE=1 \ DWITH_SSL=system \ DWITH_EMBEDDED_SERVER=1 \ DWITH_PLUGIN_DIR="/usr/local/mysql/lib/plugin" \ .
这些参数可以根据实际需求进行调整,以实现更高的定制性和灵活性。
2. 编译和安装
配置完成后,可以开始编译和安装MySQL:
make j $(nproc) sudo make install
j $(nproc)
表示使用所有可用的CPU核心进行编译,以提高编译速度。
四、配置MySQL
1. 创建MySQL用户和组
sudo groupadd mysql sudo useradd r g mysql mysql
2. 初始化MySQL数据库
sudo chown R mysql:mysql /usr/local/mysql sudo /usr/local/mysql/bin/mysqld initialize user=mysql
这将为MySQL生成一个临时密码,请记录下这个密码,稍后需要用到。
3. 启动MySQL服务
sudo /usr/local/mysql/bin/mysqld_safe user=mysql &
为了让MySQL服务在系统启动时自动启动,需要创建一个systemd服务文件:
sudo cat > /etc/systemd/system/mysqld.service <<EOF [Unit] Description=MySQL Server After=network.target [Service] User=mysql Group=mysql ExecStart=/usr/local/mysql/bin/mysqld_safe Restart=always RestartSec=10 [Install] WantedBy=multiuser.target EOF
然后启用并启动MySQL服务:
sudo systemctl enable mysqld sudo systemctl start mysqld
五、登录MySQL并设置root密码
sudo /usr/local/mysql/bin/mysql u root p
输入之前生成的临时密码登录MySQL,然后设置root用户的新密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_password'; FLUSH PRIVILEGES; EXIT;
通过编译源码安装MySQL与使用RPM包安装相比,有以下区别:
特性 | 源码安装 | RPM包安装 |
灵活性 | 高,可自定义编译选项 | 低,固定配置 |
兼容性 | 可确保与现有系统环境的兼容性 | 可能存在版本兼容问题 |
复杂性 | 较高,需要更多时间和专业知识 | 较低,操作简单 |
维护 | 较复杂,需手动管理更新 | 简单,通过包管理器轻松升级 |
社区支持 | 较好,但需要更多技术知识 | 非常好,文档丰富,易于解决 |
七、实践心得
1、备份:在进行任何重大操作前,确保备份重要的数据。
2、版本选择:选择适合你业务需求的MySQL版本。
3、安全性:确保设置强密码并限制root用户的远程访问。
4、性能调优:根据实际负载情况调整MySQL的配置文件。
八、FAQs
Q1:如何更改MySQL的数据目录?<br>
A1:在编译MySQL时,可以通过DMYSQL_DATADIR
参数指定数据目录。<br>
cmake DMYSQL_DATADIR=/custom/data/dir ... ```<br> 编译完成后,确保该目录存在并且具有适当的权限。Q2:如何卸载通过源码编译安装的MySQL?<br> A2:卸载通过源码编译安装的MySQL通常涉及删除安装目录和相关文件,停止MySQL服务:<br>
sudo systemctl stop mysqld
```<br>
删除安装目录和相关文件:<br>
sudo rm rf /usr/local/mysql sudo rm rf /etc/my.cnf /etc/init.d/mysqld /var/lib/mysql/mysql.sock /var/log/mysqld.log /var/run/mysqld/mysqld.pid /usr/lib/systemd/system/mysqld.service ```<br>这只是一个基本的卸载过程,实际操作可能需要根据具体情况进行调整。