在Linux系统中,安装MySQL服务通常涉及多个步骤,包括下载安装包、初始化配置、启动服务以及设置安全选项等,以下将以CentOS 7系统为例,详细说明安装MySQL服务的完整命令和操作流程,同时涵盖不同安装方式(如官方Yum仓库、二进制包、源码编译)的注意事项,并通过表格对比不同安装方式的优缺点。

通过官方Yum仓库安装MySQL(推荐方式)
对于CentOS/RHEL系统,使用MySQL官方Yum仓库是最简单且推荐的方式,能自动解决依赖问题并方便后续升级。
-
下载并添加MySQL Yum仓库
首先访问MySQL官网获取适用于当前系统的Yum仓库包,以MySQL 8.0为例,执行以下命令:wget https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm rpm -ivh mysql80-community-release-el7-7.noarch.rpm
安装后可通过以下命令确认仓库是否添加成功:
yum repolist enabled "MySQL-*" | grep "MySQL.*" | sort
-
安装MySQL服务器
执行以下命令安装MySQL社区版服务器:
(图片来源网络,侵删)yum install mysql-community-server -y
此命令会自动安装MySQL及相关依赖包,如
mysql-community-client、mysql-community-common等。 -
启动并设置开机自启
安装完成后,启动MySQL服务并设置为开机自启:systemctl start mysqld systemctl enable mysqld
可通过
systemctl status mysqld检查服务状态。 -
安全配置向导
MySQL 8.0安装后会生成一个临时root密码,可通过以下日志查看:
(图片来源网络,侵删)grep 'temporary password' /var/log/mysqld.log
执行安全配置向导(建议首次安装时运行):
mysql_secure_installation
根据提示设置root密码、移除匿名用户、禁止root远程登录、移除测试数据库、刷新权限等。
通过二进制包安装MySQL
如果无法使用Yum仓库(如离线环境),可选择官方提供的二进制包安装。
-
下载二进制包
从MySQL官网下载适用于Linux的二进制压缩包(如mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz),并解压到/usr/local:tar -xvf mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz mv mysql-8.0.28-linux-glibc2.12-x86_64 /usr/local/mysql
-
创建用户和数据目录
useradd -r -s /bin/false mysql mkdir -p /var/lib/mysql chown -R mysql:mysql /var/lib/mysql
-
初始化数据目录
进入/usr/local/mysql/bin目录,执行初始化命令:./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/var/lib/mysql
记录生成的临时root密码(同Yum安装方式)。
-
配置系统服务
创建systemd服务文件/usr/lib/systemd/system/mysqld.service如下:[Unit] Description=MySQL Server After=network.target [Service] User=mysql Group=mysql ExecStart=/usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/var/lib/mysql Restart=on-failure [Install] WantedBy=multi-user.target
重新加载systemd并启动服务:
systemctl daemon-reload systemctl start mysqld systemctl enable mysqld
通过源码编译安装MySQL(不推荐新手)
源码编译安装灵活性高但复杂,需提前依赖编译工具(如gcc、cmake、ncurses-devel等)。
-
安装依赖包
yum groupinstall "Development Tools" -y yum install cmake ncurses-devel bison libaio-devel -y
-
下载并解压源码
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-8.0.28.tar.gz tar -xvf mysql-boost-8.0.28.tar.gz cd mysql-8.0.28
-
编译配置与安装
执行cmake配置(根据需求调整参数):cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/var/lib/mysql \ -DWITH_BOOST=boost \ -DDEFAULT_CHARSET=utf8mb4 \ -DDEFAULT_COLLATION=utf8mb4_general_ci \ -DWITH_SYSTEMD=ON编译并安装:
make -j$(nproc) && make install
后续步骤参考二进制包安装中的初始化、配置服务部分。
不同安装方式对比
| 安装方式 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| Yum仓库 | 简单快速,自动依赖管理,易升级 | 需联网,版本固定 | 生产环境、常规服务器 |
| 二进制包 | 无需编译,离线可用,灵活性高 | 需手动管理依赖,升级复杂 | 离线环境、定制化需求 |
| 源码编译 | 可定制功能,性能优化 | 复杂,依赖多,编译时间长 | 开发测试、特殊功能需求 |
相关问答FAQs
Q1: 安装MySQL后如何修改root密码?
A1: 若已知root密码,可通过mysql -u root -p登录后执行:
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
若忘记密码,需停止MySQL服务,跳过权限表启动(mysqld_safe --skip-grant-tables &),然后更新密码,重启服务并正常加载权限表。
Q2: 如何查看MySQL服务的运行状态和错误日志?
A2: 使用以下命令查看服务状态:
systemctl status mysqld
错误日志默认位于/var/log/mysqld.log,可通过以下命令实时查看:
tail -f /var/log/mysqld.log
若需自定义日志路径,修改/etc/my.cnf中的log-error参数。
