跳到主要内容MySQL 环境配置实战:CentOS 7 与 Ubuntu 双系统安装指南 | 极客日志SQL
MySQL 环境配置实战:CentOS 7 与 Ubuntu 双系统安装指南
MySQL 环境配置是后端开发的基础环节,不同 Linux 发行版存在显著差异。详解 CentOS 7 与 Ubuntu 下的安装流程,涵盖 MariaDB 冲突处理、YUM/APT 源配置、密码初始化及编码优化等关键步骤,帮助开发者快速搭建稳定可用的数据库环境。

作为后端开发或数据库学习的入门必备,MySQL 的环境配置往往是第一道关卡。不同 Linux 发行版(如 CentOS 7、Ubuntu)的安装步骤差异较大,再加上系统自带 MariaDB 的干扰、密码策略限制及中文编码等问题,很容易让人踩坑。本文提供一份详细的 MySQL 环境配置指南,拆解 CentOS 7 下的完整安装流程(从卸载冲突环境到配置优化),并补充 Ubuntu 系统的安装方案,全程命令可直接复制使用。
一、前置知识:为什么要先处理 MariaDB?
MySQL 被 Oracle 收购后,许多 Linux 发行版默认预装了 MariaDB。它是 MySQL 的分支,虽然语法兼容但底层存在差异,会和官方 MySQL 产生端口或配置文件的冲突。因此,安装 MySQL 前必须彻底卸载 MariaDB,这是配置成功的关键第一步。
所有操作建议优先使用 root 用户执行(普通用户需加 sudo 获取权限)。初期学习阶段建议直接用 MySQL root 用户操作,后续熟悉用户管理后再创建普通用户即可。
二、CentOS 7 系统下 MySQL 完整安装配置
本次 CentOS 7 环境安装的是 MySQL 5.7 版本(兼容性强、学习常用),全程通过官方 YUM 源安装,稳定无第三方依赖问题。步骤分为卸载冲突环境→配置官方 YUM 源→安装 MySQL→初始化配置→优化设置五大环节。
2.1 卸载系统自带 MariaDB / 旧版 MySQL
检查并停止进程
首先查看系统中是否有 MariaDB 进程在运行,有则立即停止,避免卸载时出现资源占用报错:
ps ajx | grep mariadb
systemctl stop mariadb.service
ps ajx | grep mariadb
卸载相关安装包
通过 rpm 命令查询系统中已安装的 MariaDB/MySQL 相关包,然后逐一卸载:
rpm -qa | grep mariadb
rpm -qa | grep mysql
sudo yum remove mariadb -y
sudo yum remove mariadb* mysql* -y
备份重要配置和数据
卸载前建议备份 MySQL/MariaDB 的配置文件和数据目录,防止误删重要内容:
cp /etc/my.cnf /etc/my.cnf.bak
cp -r /var/lib/mysql /var/lib/mysql.bak
2.2 配置 MySQL 官方 YUM 源
CentOS 7 默认 YUM 源中没有 MySQL 官方包,需要手动添加官方 YUM 源。,避免兼容性问题。
建议安装和系统版本匹配的 MySQL 版本
查看系统版本
确认 CentOS 7 的具体版本,保证后续下载的 YUM 源和系统匹配:
输出示例:CentOS Linux release 7.8.2003 (Core)。
下载并安装官方 YUM 源
wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm
sudo rpm -Uvh mysql57-community-release-el7-10.noarch.rpm
验证 YUM 源安装成功
安装后会在 /etc/yum.repos.d/ 目录下生成 mysql-community.repo 和 mysql-community-source.repo 两个文件,验证如下:
ls /etc/yum.repos.d/ | grep mysql
检查 YUM 源可用性
确认 MySQL YUM 源可正常识别,执行如下命令查看可安装的 MySQL 包:
若输出中出现 mysql-community-server 等包,说明 YUM 源配置成功。
2.3 安装 MySQL 服务
通过 YUM 源安装 MySQL 官方服务端和客户端,-y 参数表示自动确认所有安装选项,无需手动回车:
sudo yum install -y mysql-community-server
安装过程中会自动安装依赖包(mysql-community-common、mysql-community-libs、mysql-community-client),耐心等待即可。
常见坑 1:安装时出现秘钥过期报错,提示 GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql。
解决方案:导入最新的 MySQL 官方秘钥即可,重新执行安装命令即可成功。
2.4 启动 MySQL 并验证服务状态
启动 MySQL 服务
systemctl start mysqld.service
systemctl enable mysqld
systemctl daemon-reload
验证 MySQL 服务是否运行
若输出中出现 /usr/sbin/mysqld 相关进程,说明服务启动成功。
2.5 登录 MySQL 并修改初始密码
MySQL 5.7 安装后会自动生成临时 root 密码,存放在 /var/log/mysqld.log 日志文件中,必须先通过临时密码登录,再修改为自定义密码。以下提供 3 种登录方法,按顺序尝试即可。
方法 1:通过临时密码登录(推荐,99% 可用)
sudo grep 'temporary password' /var/log/mysqld.log
输出示例:root@localhost: yLMalT:v+5l*(冒号后为临时密码,复制即可)。
密码策略限制:MySQL 5.7 默认开启密码强度验证,要求密码包含数字、符号、大小写字母,长度至少 8 位。新手可先关闭该策略,再设置简单密码:
set global validate_password_policy=0;
set global validate_password_length=1;
ALTER USER 'root'@'localhost' IDENTIFIED BY '[email protected]';
FLUSH PRIVILEGES;
执行完成后,退出 MySQL 重新登录即可使用新密码。
方法 2:直接登录(适用于新版 MySQL,无临时密码)
若上述命令未提取到临时密码,说明安装的 MySQL 版本无初始密码,直接执行如下命令登录:
出现密码输入框时直接回车,即可成功登录,后续按方法 1 修改密码即可。
方法 3:跳过权限验证登录(适用于密码丢失 / 登录失败)
若前两种方法均失败,可通过修改配置文件跳过 MySQL 权限验证,强制登录后重置密码:
在 [mysqld] 节点最后添加如下配置,保存并退出(vim 中按 i 编辑,ESC + :wq 保存):
systemctl restart mysqld.service
mysql -uroot
登录后执行如下 SQL 重置密码,重置后必须删除 skip-grant-tables 配置并重启服务,否则 MySQL 无权限验证,存在安全风险:
USE mysql;
UPDATE user SET authentication_string=PASSWORD('[email protected]') WHERE User='root' AND Host='localhost';
FLUSH PRIVILEGES;
exit;
vim /etc/my.cnf
systemctl restart mysqld.service
2.6 MySQL 配置优化(编码、存储引擎)
默认的 MySQL 配置存在中文编码乱码、存储引擎未指定等问题,需要修改 /etc/my.cnf 配置文件,优化核心参数。本次配置UTF-8 编码和InnoDB 默认存储引擎(MySQL 主流存储引擎,支持事务、行锁)。
[mysql]
[mysqld]
port=3306
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
character-set-server=utf8
default-storage-engine=innodb
systemctl restart mysqld.service
2.7 CentOS 7 安装后常见问题解决
问题 1:配置 UTF-8 后仍无法输入中文
原因:终端本身不支持 UTF-8 编码,而非 MySQL 配置问题。
解决方案:检查终端 LANG 环境变量,确保为 UTF-8 编码:
若输出不是 LANG=en_US.utf8,则修改终端编码(永久生效需修改 /etc/profile 文件):
export LANG=en_US.utf8
echo "export LANG=en_US.utf8" >> /etc/profile
source /etc/profile
问题 2:MySQL 服务启动失败
排查思路:查看 MySQL 错误日志,定位具体失败原因:
tail -100 /var/log/mysqld.log
常见原因:端口 3306 被占用、数据目录权限不足、配置文件语法错误,对应解决即可。
三、Ubuntu 系统下 MySQL 完整安装配置
Ubuntu 系统(以 20.04/22.04 为例)安装 MySQL 和 CentOS 7 差异较大,Ubuntu 使用 apt 包管理器,且默认预装的 MariaDB 处理方式更简单。本次安装 MySQL 8.0 版本(Ubuntu 官方源中主流版本),步骤分为卸载 MariaDB→更新 apt 源→安装 MySQL→初始化配置→远程访问配置。
3.1 卸载系统自带 MariaDB
sudo systemctl stop mariadb
sudo apt remove mariadb-server mariadb-client mariadb-common -y
sudo apt autoremove -y
sudo apt clean
3.2 更新 apt 源并安装 MySQL
Ubuntu 默认 apt 源包含 MySQL 官方包,直接更新源后安装即可,推荐安装 mysql-server(包含服务端 + 客户端 + 依赖):
sudo apt update && sudo apt upgrade -y
sudo apt install mysql-server -y
安装过程中无需手动设置密码,Ubuntu 的 MySQL 会自动创建 root 用户并采用 auth_socket 认证方式(仅本地 root 用户可登录,无需密码)。
3.3 验证 MySQL 服务状态
sudo systemctl status mysql
sudo systemctl enable mysql
若输出中显示 active (running),说明服务启动成功。
3.4 配置 MySQL root 用户密码与登录方式
Ubuntu 安装的 MySQL 默认不允许密码登录,需要先修改认证方式为 mysql_native_password,再设置密码,步骤如下:
执行如下 SQL 语句,修改 root 密码并更改认证方式:
USE mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MySql@123456';
FLUSH PRIVILEGES;
exit;
3.5 Ubuntu MySQL 编码与核心配置优化
Ubuntu 的 MySQL 主配置文件为 /etc/mysql/mysql.conf.d/mysqld.cnf,编辑该文件优化编码和核心参数:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
在 [mysqld] 节点添加 / 修改如下配置:
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
default-storage-engine = InnoDB
port = 3306
sudo vim /etc/mysql/conf.d/mysql.cnf
default-character-set = utf8mb4
sudo systemctl restart mysql
SHOW VARIABLES LIKE '%character%';
SHOW VARIABLES LIKE '%collation%';
若所有编码项均为 utf8mb4,说明配置成功(utf8mb4 是 UTF-8 的超集,支持 emoji 和特殊中文)。
3.6 开启 Ubuntu MySQL 远程访问(可选)
默认情况下 MySQL 仅允许本地访问,若需要在其他机器上连接 Ubuntu 的 MySQL,需完成配置文件修改 + 权限授权 + 防火墙开放三步。前文已注释掉 bind-address,接下来授权远程访问并开放 3306 端口。
步骤 1:授权 root 用户远程访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'MySql@123456' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit;
步骤 2:开放 Ubuntu 防火墙 3306 端口
Ubuntu 默认使用 ufw 防火墙,开放 3306 端口(TCP 协议,MySQL 默认端口):
sudo ufw status
sudo ufw allow 3306/tcp
sudo ufw reload
完成后,即可在本地通过 Navicat、DataGrip 等工具,输入 Ubuntu 服务器 IP、3306 端口、root 账号密码连接 MySQL。
总结
MySQL 的环境配置是基础,掌握不同系统的安装方法,能快速适配各种开发环境。后续可以继续学习 MySQL 的用户管理、数据库设计、SQL 语句优化等内容,打好后端开发的数据库基础。如果配置过程中遇到其他报错,查阅官方文档或社区资源通常能找到答案。
相关免费在线工具
- SQL 美化和格式化
在线格式化和美化您的 SQL 查询(它支持各种 SQL 方言)。 在线工具,SQL 美化和格式化在线工具,online
- SQL转CSV/JSON/XML
解析 INSERT 等受限 SQL,导出为 CSV、JSON、XML、YAML、HTML 表格(见页内语法说明)。 在线工具,SQL转CSV/JSON/XML在线工具,online
- CSV 工具包
CSV 与 JSON/XML/HTML/TSV/SQL 等互转,单页多 Tab。 在线工具,CSV 工具包在线工具,online
- Base64 字符串编码/解码
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
- Base64 文件转换器
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
- Markdown转HTML
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online