HCRM博客

如何在CentOS上编译并安装MySQL?

在CentOS上编译安装MySQL是一个相对复杂但灵活的过程,它允许用户根据需求定制MySQL的安装,下面将详细介绍如何在CentOS上编译安装MySQL 8.0,包括准备工作、下载源码、编译安装、配置服务以及登录设置等步骤。

一、准备工作

1、更新系统并安装必要的编译工具:确保CentOS系统已更新到最新状态,并安装了必要的编译工具,执行以下命令进行更新和安装:

如何在CentOS上编译并安装MySQL?-图1
(图片来源网络,侵权删除)
sudo yum update y
sudo yum install y gccc++ cmake make wget openssldevel ncursesdevel bisondevel zlibdevel libaiodevel

2、检查gcc版本:MySQL 8.0要求gcc的版本在4.8以上,如果版本低于4.8,需要自行升级。

3、安装依赖包:除了上述编译工具外,还需要安装一些其他依赖包,如pcredevel、zlibdevel、bisondevel等。

二、下载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 \
    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" \
    .

注意:这里的DENABLED_LOCAL_INFILE=1表示启用本地文件导入功能,这在某些情况下可能是不安全的,请根据实际需求调整。

2、编译和安装:配置完成后,开始编译和安装MySQL,这个过程可能需要一些时间,具体取决于计算机的性能。

如何在CentOS上编译并安装MySQL?-图2
(图片来源网络,侵权删除)
make j $(nproc)
sudo make install

j $(nproc)表示使用所有可用处理器进行并行编译。

四、配置MySQL

1、创建MySQL用户和组:为了安全起见,为MySQL创建一个专用的用户和组。

sudo groupadd mysql
sudo useradd r g mysql mysql

2、初始化MySQL数据库:在安装完成后,需要初始化MySQL数据库。

sudo chown R mysql:mysql /usr/local/mysql
sudo /usr/local/mysql/bin/mysqld initialize user=mysql

注意:初始化过程中会生成一个临时密码,请妥善保管。

3、启动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服务:

如何在CentOS上编译并安装MySQL?-图3
(图片来源网络,侵权删除)
sudo systemctl enable mysqld
sudo systemctl start mysqld

4、登录MySQL并设置root密码:使用初始化时生成的临时密码登录MySQL,并设置新的root密码。

sudo /usr/local/mysql/bin/mysql u root p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your_password';
FLUSH PRIVILEGES;
EXIT;

五、与RPM包安装的比较

通过编译源码安装MySQL与使用RPM包安装相比,有以下区别:

方面 编译源码安装 RPM包安装
灵活性 高,可以根据需要选择不同的编译选项 低,通常只能安装预编译好的包
兼容性 可以确保MySQL与现有系统环境的兼容性 可能受限于预编译包的兼容性
复杂性 相对复杂,需要更多的时间和专业知识 简单快捷,适合初学者
维护 需要手动管理更新和补丁 可以通过包管理器轻松升级和维护
社区支持 相对较少,但可以获得更深入的定制和支持 通常更好,包括文档和问题解决

六、实践心得与注意事项

1、备份:在进行任何重大操作前,确保备份重要的数据。

2、版本选择:选择适合你业务需求的MySQL版本。

3、安全性:确保设置强密码并限制root用户的远程访问。

4、性能调优:根据实际负载情况调整MySQL的配置文件。

5、日志监控:定期检查MySQL的错误日志和慢查询日志,以便及时发现和解决问题。

七、相关问题FAQs

Q1:为什么选择编译源码安装MySQL而不是使用RPM包安装?

A1: 编译源码安装MySQL提供了更高的灵活性和定制性,用户可以根据自己的需求选择不同的编译选项,从而获得更符合需求的功能和性能,编译源码安装还可以确保MySQL与现有系统环境的兼容性,这种方法相对复杂,需要更多的时间和专业知识,对于需要高度定制化安装的场景,编译源码安装无疑是一个很好的选择。

Q2:在编译安装MySQL过程中遇到“gcc版本过低”的问题怎么办?

A2: 如果遇到“gcc版本过低”的问题,首先需要检查当前系统中gcc的版本,如果版本确实低于MySQL 8.0的要求(4.8以上),则需要升级gcc,可以通过以下步骤进行升级:

1、下载新版本的gcc源码包;

2、解压源码包并进入目录;

3、配置编译参数(如指定安装路径、启用或禁用某些功能等);

4、编译并安装新版本的gcc;

5、将新版本的gcc添加到系统环境变量中,以便后续编译MySQL时能够找到并使用新版本的gcc。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/16852.html

分享:
扫描分享到社交APP
上一篇
下一篇