在CentOS系统中编译安装MySQL是一个需要细致操作的过程,本文将详细介绍从环境准备到最终配置的完整步骤,帮助用户顺利完成安装,编译安装MySQL可以更好地适应特定需求,同时获得最新的功能特性和性能优化。

环境准备与依赖安装
在开始编译MySQL之前,需要确保系统满足基本要求并安装必要的依赖包,CentOS系统需要更新软件包列表并安装开发工具、编译器以及MySQL所需的库文件,执行以下命令更新系统并安装基础依赖:
sudo yum update -y sudo yum groupinstall "Development Tools" -y sudo yum install cmake ncurses-devel bison glibc-devel libaio-devel openssl-devel -y
建议创建一个专用的MySQL用户和用户组,以提升系统安全性,使用以下命令创建:
sudo groupadd mysql sudo useradd -r -g mysql mysql
下载MySQL源码并解压
访问MySQL官方网站或GitHub仓库获取最新的源码包,以MySQL 8.0为例,使用wget命令下载:
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-8.0.33.tar.gz
下载完成后,将源码包解压到指定目录,如/usr/local/src:
sudo tar -zxvf mysql-boost-8.0.33.tar.gz -C /usr/local/src cd /usr/local/src/mysql-8.0.33
注意:MySQL 8.0的源码包中已包含Boost库,无需单独下载。
配置编译选项
编译前的配置是关键步骤,使用cmake工具可以根据需求定制安装选项,以下是一个常用的配置示例:
sudo cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_BOOST=boost -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DENABLED_LOCAL_INFILE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DMYSQL_TCP_PORT=3306
配置完成后,检查输出信息确保没有错误,如需修改配置,可以运行sudo cmake . -LH查看所有可用选项。
编译与安装
配置成功后,开始编译过程,根据系统性能,编译可能需要较长时间,建议使用多核加速:

sudo make -j$(nproc)
编译完成后,执行安装命令:
sudo make install
安装过程中,系统会将MySQL文件复制到指定目录,并创建必要的配置文件和目录结构。
初始化MySQL数据库
安装完成后,需要初始化MySQL数据目录并设置权限,运行以下命令:
sudo chown -R mysql:mysql /usr/local/mysql sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
初始化完成后,会生成临时root密码,请务必记录下来,后续可以通过以下命令查看:
sudo grep 'temporary password' /usr/local/mysql/data/error.log
配置MySQL服务
将MySQL添加为系统服务并启动,复制配置文件到/etc目录:
sudo cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
创建systemd服务文件:
sudo tee /etc/systemd/system/mysqld.service > /dev/null <<EOF [Unit] Description=MySQL Server After=network.target [Service] User=mysql Group=mysql ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf LimitNOFILE=infinity Restart=on-failure [Install] WantedBy=multi-user.target EOF
重新加载systemd并启动MySQL:
sudo systemctl daemon-reload sudo systemctl start mysqld sudo systemctl enable mysqld
安全配置与测试
运行安全脚本设置root密码并移除匿名用户:

sudo /usr/local/mysql/bin/mysql_secure_installation
根据提示完成配置,最后测试MySQL是否正常运行:
sudo /usr/local/mysql/bin/mysql -u root -p
输入密码后,若能成功登录则表示安装完成。
相关问答FAQs
Q1: 编译MySQL时出现cmake未找到的错误怎么办?
A: 这是因为系统未安装cmake,可以通过sudo yum install cmake -y命令安装,确保版本不低于3.2,安装后重新运行配置命令即可。
Q2: 如何修改MySQL的默认字符集为utf8mb4?
A: 在/etc/my.cnf文件中添加以下配置:
[mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci [client] default-character-set=utf8mb4
保存后重启MySQL服务使配置生效。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复