尽管多数用户倾向于使用预编译的二进制包或包管理器进行安装,但源码安装提供了更高的灵活性和定制性,特别适合需要深度定制或追求最新功能的场景
本文将详细介绍如何在CentOS系统上通过源码安装MySQL,确保每一步都清晰明了,帮助您顺利完成安装
一、准备工作 1. 系统环境检查 在进行任何安装之前,确保您的CentOS系统是最新的,并具备必要的开发工具和依赖库
您可以通过以下命令更新系统并安装基础开发工具: bash sudo yum update -y sudo yum groupinstall Development Tools -y 2. 下载MySQL源码包 访问MySQL的官方下载页面(【http://dev.mysql.com/downloads/mysql/】(http://dev.mysql.com/downloads/mysql/)),选择合适的版本并下载源码包
下载完成后,使用`md5sum`命令验证文件的完整性,确保下载过程中文件未被篡改
bash md5sum mysql-x.x.xx.tar.gz 将上述命令中的`mysql-x.x.xx.tar.gz`替换为您下载的源码包文件名,并与官方提供的MD5校验和进行比对
3. 安装必要的依赖 编译MySQL需要多种依赖库,包括gcc、cmake、bison、ncurses等
使用以下命令安装这些依赖: bash sudo yum install -y make gcc-c++ cmake bison-devel ncurses-devel libaio libaio-devel perl-Data-Dumper net-tools 二、源码编译与安装 1. 解压源码包 将下载的源码包解压到指定目录,通常选择`/usr/local/src`或`/opt`等目录
bash tar -xzvf mysql-x.x.xx.tar.gz -C /usr/local/src 将`mysql-x.x.xx.tar.gz`替换为实际的文件名
2. 配置编译选项 进入解压后的源码目录,使用`cmake`命令配置编译选项
这一步非常关键,因为它决定了MySQL的安装路径、数据目录、存储引擎等重要配置
bash cd /usr/local/src/mysql-x.x.xx cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci 请根据您的实际需求调整上述选项
例如,如果您不需要MyISAM存储引擎,可以将`-DWITH_MYISAM_STORAGE_ENGINE=1`改为`-DWITH_MYISAM_STORAGE_ENGINE=0`
3. 编译与安装 配置完成后,使用`make`命令编译源码,然后使用`make install`命令将编译好的文件安装到指定目录
bash make && make install 这个过程可能需要一些时间,具体取决于您的系统性能和选择的MySQL版本
三、MySQL配置与启动 1. 创建MySQL用户和组 为了确保MySQL的安全运行,需要创建一个专门的用户和组来管理MySQL进程和数据文件
bash sudo groupadd mysql sudo useradd -g mysql -s /sbin/nologin mysql 2. 设置权限 将MySQL的安装目录和数据目录的所有权更改为MySQL用户和组
bash sudo chown -R mysql:mysql /usr/local/mysql 3. 初始化数据库 进入MySQL的安装目录,执行初始化脚本,创建系统自带的数据库和表
bash cd /usr/local/mysql/scripts sudo ./mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql 4. 配置MySQL 复制MySQL的配置文件模板到`/etc`目录,并根据需要进行修改
bash sudo cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf 请注意,如果在`/etc`目录下已经存在`my.cnf`文件(特别是在CentOS7的最小安装中),请将其重命名以避免冲突
5. 启动MySQL服务 将MySQL的服务脚本复制到`/etc/init.d`目录,并设置开机启动
然后启动MySQL服务
bash sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql sudo chkconfig mysql on sudo service mysql start 在CentOS7及更高版本中,您可能需要使用`systemctl`命令来管理服务
6. 设置环境变量 为了方便使用MySQL命令行工具,需要将MySQL的bin目录添加到系统的PATH环境变量中
bash echo export PATH=$PATH:/usr/local/mysql/bin ] /etc/profile source /etc/profile 7. 安全配置 首次启动MySQL后,运行`mysql_secure_installation`脚本来进行安全配置,包括设置root密码、删除匿名用户、禁止远程root登录等
bash sudo mysql_secure_installation 四、常见问题与解决 1. 依赖包缺失 如果在编译过程中提示缺少某些依赖包,可以使用`yum`命令安装相应的依赖包
确保在安装前已经连接到互联网
2. 编译错误 如果在编译过程中遇到错误,请仔细检查错误日志,根据错误信息进行排查和解决
常见的编译错误可能由缺失的依赖、不兼容的库版本或配置错误引起
3. 权限问题 在安装或启动过程中遇到权限问题时,请确保您以root用户身份执行相关命令,或使用`sudo`提升权限
4. 端口冲突 如果MySQL的默认端口(3306)被占用,可以在配置文件中修改端口号,然后重新启动MySQL服务
五、总结 通过源码安装MySQL虽然相对复杂,但提供了更高的灵活性和定制性
本文详细介绍了在CentOS系统上通过源码安装MySQL的步骤,包括准备工作、源码编译与安装、MySQL配置与启动以及常见问题与解决
希望这份指南能帮助您顺利完成MySQL的源码安装,并为您的项目提供强大的数据支持
在安装完成后,别忘了定期进行安全更新和维护,以确保MySQL的稳定性和安全性