CentOS7系统下MySQL的编译安装指南

centos 7 编译安装mysql

时间:2025-06-30 00:52


[内容格式化] CentOS7编译安装MySQL:全面指南 在Linux系统中,MySQL作为一种广泛使用的关系型数据库管理系统,具有高性能、稳定性和可扩展性。对于希望在CentOS7上安装MySQL的用户来说,编译安装是一个灵活且强大的选择,因为它允许你根据需要定制MySQL的功能和性能。尽管这种方法相对于使用RPM包安装更为复杂,但它提供了更高的定制性和灵活性。以下是一篇详尽的指南,将带你逐步完成在CentOS7上编译安装MySQL的过程。 一、安装前的准备工作 在开始编译安装MySQL之前,你需要确保CentOS7系统已更新到最新状态,并安装了必要的编译工具和依赖包。以下是具体的步骤: 1.更新系统: bash sudo yum update -y 2.安装编译工具和依赖: 编译MySQL需要一系列的工具和库。使用以下命令安装这些依赖: bash sudo yum install -y gcc gcc-c++ cmake make ncurses ncurses-devel openssl-devel bison numactl-devel libaio-devel 3.清理环境: 如果你的系统上已经安装了MariaDB(MySQL的一个分支),你需要先将其卸载,以避免潜在的冲突: bash sudo yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y 4.创建MySQL用户和组: 为了安全地运行MySQL服务,建议创建一个专门的用户和组: bash sudo groupadd mysql sudo useradd -r -g mysql mysql 二、下载MySQL源码 接下来,你需要从MySQL官方网站下载最新的源码包。假设你要安装MySQL8.0.29版本,可以使用以下命令下载: bash wget https://cdn.mysql.com/Downloads/MySQL-8.0/mysql-8.0.29.tar.gz 下载完成后,解压源码包: bash tar -xzvf mysql-8.0.29.tar.gz cd mysql-8.0.29 三、配置编译选项 在编译MySQL之前,你需要使用cmake命令配置编译选项。这一步非常关键,因为它决定了MySQL的功能和性能。以下是一个示例配置命令: bash mkdir build && cd build cmake3 .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/var/lib/mysql -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_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 配置完成后,你可以开始编译和安装MySQL。使用以下命令进行编译: bash make -j$(nproc) `-j$(nproc)`参数可以加速编译过程,它表示并行编译的线程数。编译完成后,使用以下命令安装MySQL: bash sudo make install 五、配置MySQL 安装完成后,你需要进行一些配置工作,以便MySQL能够正常运行。 1.创建必要的目录并设置权限: bash sudo mkdir -p /var/lib/mysql sudo chown -R mysql:mysql /usr/local/mysql /var/lib/mysql 2.初始化数据库: 在MySQL8.0及更高版本中,你需要使用`mysqld --initialize`命令来初始化数据库: bash sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql 初始化过程中,MySQL会生成一个临时密码,你可以在`/var/log/mysqld.log`文件中找到它。 3.复制配置文件: MySQL提供了一个默认的配置文件模板。你可以将其复制到`/etc`目录下并进行修改: bash sudo cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf 根据你的需求,修改配置文件中的相关选项。 4.创建systemd服务文件: 为了让MySQL服务在系统启动时自动启动,你需要创建一个systemd服务文件: bash sudo cat > /etc/systemd/system/mysqld.service [