Linux系统中MySQL数据库的三种部署方法详解
前言
MySQL作为广泛使用的关系型数据库管理系统,凭借其开源特性、跨平台支持、多语言API接口、多样化的存储引擎以及对标准SQL的兼容性,成为开发与运维工作中的重要工具。本文将详细介绍在Linux系统环境下通过源码编译、YUM包管理器和RPM包三种方式部署并初始化MySQL数据库的完整流程。
实验环境
- 最小化安装的4核4GB CentOS 7.6虚拟机
- 远程连接工具(如XShell)
- MySQL官方下载地址:https://www.mysql.com/downloads/
一、源码编译安装MySQL
源码编译方式虽然步骤较多,但提供了最大的配置灵活性,允许在安装和初始化阶段精确设置各项参数。
1. 环境准备与编译安装
首先检查并卸载可能存在的mariadb组件:
rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs
安装必要的编译依赖:
yum install -y cmake make gcc gcc-c++ openssl openssl-devel ncurses ncurses-devel bison bison-devel
安装文件传输工具:
yum -y install lrzsz
上传MySQL源码包并解压:
tar -zxf mysql-boost-5.7.37.tar.gz -C /usr/src/
cd /usr/src/mysql-5.7.37/
使用cmake进行预配置:
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/usr/local/mysql/etc \
-DWITH_INNOBASE_STORAGE_ENGINE=ON \
-DWITH_MYISAM_STORAGE_ENGINE=ON \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLED_LOCAL_INFILE=ON \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/tmp/mysql.sock \
-DWITH_INNODB_MEMCACHED=ON \
-DWITH_BOOST=boost/boost_1_59_0
编译并安装:
make -j4 && make install
2. 初始化数据库
创建必要的用户和目录结构:
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
cd /usr/local/mysql
mkdir -p /usr/local/mysql/data
mkdir -p /usr/local/mysql/etc
mkdir -p /usr/local/mysql/tmp
mkdir -p /usr/local/mysql/logs
chown -R mysql:mysql /usr/local/mysql
创建并编辑配置文件:
vim /usr/local/mysql/etc/my.cnf
添加详细的配置内容(略,参考原配置但可优化部分参数)
初始化数据库:
bin/mysqld --defaults-file=/usr/local/mysql/etc/my.cnf --initialize --user=mysql
3. 配置环境变量
设置系统环境变量:
echo export MYSQL_HOME=/usr/local/mysql >> /etc/profile
echo export PATH=$MYSQL_HOME/bin:$PATH >> /etc/profile
source /etc/profile
创建系统服务脚本:
cp /usr/src/mysql-5.7.37/support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
systemctl daemon-reload
systemctl start mysql
chkconfig mysql on
创建命令软链接:
ln -s /usr/local/mysql/bin/* /usr/local/bin/
获取初始密码并登录:
cat /usr/local/mysql/logs/error.log | grep 'temporary password'
mysql -uroot -p
修改初始密码:
set password=password('NewPassword123!');
二、使用YUM安装MySQL
YUM方式安装最为简便,适合快速部署。
1. 配置YUM仓库
安装文件传输工具:
yum -y install lrzsz
上传MySQL YUM仓库配置文件并安装:
rpm -ivh mysql84-community-release-el7-1.noarch.rpm
2. 安装MySQL服务器
查看可用的MySQL包:
yum list | grep mysql
安装MySQL服务器:
yum -y install mysql-community-server
3. 启动服务并配置
启动并设置开机自启:
systemctl start mysqld && systemctl enable mysqld && systemctl status mysqld
查看初始密码并登录:
cat /var/log/mysqld.log | grep password
mysql -uroot -p
修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourSecurePassword!123';
FLUSH PRIVILEGES;
三、使用RPM包安装MySQL
RPM包方式介于源码和YUM之间,提供了良好的控制性。
1. 安装RPM包
安装文件传输工具:
yum -y install lrzsz
按顺序安装RPM包(解决依赖关系):
rpm -e mariadb-libs --nodeps
rpm -ivh mysql-community-common-5.7.37-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.37-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.37-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.37-1.el7.x86_64.rpm
2. 启动服务并配置
启动MySQL服务:
systemctl start mysqld && systemctl enable mysqld && systemctl status mysqld
查看初始密码并登录:
cat /var/log/mysqld.log | grep 'temporary password'
mysql -uroot -p
修改密码(注意RPM安装的密码策略要求):
set password=password('ComplexPass123!@#');