在CentOS系统中编译安装MySQL是一个较为复杂的过程,但通过以下详细的步骤和逻辑清晰的指导,可以帮助您顺利完成安装,以下是具体的操作步骤:
一、准备工作
1、更新系统并安装必要的编译工具:确保您的CentOS系统已更新到最新状态,并安装了必要的编译工具,可以使用以下命令进行更新和安装:
sudo yum update y sudo yum install y gccc++ cmake make
2、下载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之前,需要配置编译参数,这一步非常重要,因为它决定了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" \ .
三、编译和安装MySQL
配置完成后,可以开始编译和安装MySQL:
make j$(nproc) # 使用所有可用的处理器核心进行编译 sudo make install
四、配置MySQL
1、创建MySQL用户和组:为了安全性,建议为MySQL创建一个单独的用户和组:
sudo groupadd mysql sudo useradd r g mysql mysql
2、初始化MySQL数据库:将MySQL数据目录的所有权更改为mysql用户,并初始化数据库:
sudo chown R mysql:mysql /usr/local/mysql sudo /usr/local/mysql/bin/mysqld initialize user=mysql
3、启动MySQL服务:使用mysqld_safe
命令启动MySQL服务,并允许其在后台运行:
sudo /usr/local/mysql/bin/mysqld_safe user=mysql &
4、创建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密码
登录MySQL服务器并设置root密码:
sudo /usr/local/mysql/bin/mysql u root
在MySQL提示符下执行以下命令设置root密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_password'; FLUSH PRIVILEGES; EXIT;
六、与RPM包安装的比较
通过编译源码安装MySQL与使用RPM包安装相比,有以下区别:
特点 | 编译源码安装 | RPM包安装 |
灵活性 | 高,可根据需要选择不同的编译选项 | 低,固定的编译选项 |
兼容性 | 可确保MySQL与现有系统环境的兼容性 | 可能受限于RPM包的版本 |
复杂性 | 高,需要更多的时间和专业知识 | 低,简单易行 |
维护 | 较低,需要手动管理更新 | 较高,可以通过包管理器轻松升级 |
社区支持 | 较少,文档和问题解决可能不如RPM包丰富 | 较多,有较好的社区支持 |
七、实践心得
1、备份:在进行任何重大操作前,确保备份重要的数据。
2、版本选择:选择适合你业务需求的MySQL版本。
3、安全性:确保设置强密码并限制root用户的远程访问。
4、性能调优:根据实际负载情况调整MySQL的配置文件。
通过上述步骤,我们成功地在CentOS中通过编译源码的方式安装了MySQL数据库,尽管这种方法相对复杂,但它能够提供更高的定制性和灵活性,对于需要高度定制化安装的场景,编译源码安装无疑是一个很好的选择。