跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
SQL

MySQL 环境配置实战:CentOS 7 与 Ubuntu 双系统部署指南

MySQL 环境配置实战涵盖 CentOS 7 与 Ubuntu 系统的完整安装流程。核心步骤包括卸载冲突的 MariaDB、配置官方源、安装服务及初始化密码。针对 CentOS 使用 YUM 源,Ubuntu 采用 apt 包管理,两者均需优化编码为 utf8mb4 并调整存储引擎。重点解决密码策略限制、远程访问权限及防火墙设置问题,确保数据库安全可用。

怪力乱神发布于 2026/3/27更新于 2026/10/2177 浏览
MySQL 环境配置实战:CentOS 7 与 Ubuntu 双系统部署指南

文章配图

作为后端开发或数据库学习的起点,MySQL 环境搭建往往是第一道坎。不同 Linux 发行版(如 CentOS 7、Ubuntu)的安装路径差异较大,加之系统预装的 MariaDB 干扰、密码策略限制及编码问题,新手容易踩坑。本文以资深工程师的视角,拆解 CentOS 7 和 Ubuntu 下的完整部署流程,命令可直接复制,重点解决配置冲突与优化问题。

前置准备:处理 MariaDB 冲突

MySQL 被 Oracle 收购后,CentOS 7 和 Ubuntu 常默认预装 MariaDB。虽然语法兼容,但底层实现不同,会与官方 MySQL 产生端口和配置文件冲突。因此,安装前彻底卸载 MariaDB 是成功的关键。

建议全程使用 root 用户操作(普通用户需加 sudo),初期学习阶段直接用 root 管理更便捷,熟悉后再创建普通用户。

CentOS 7 系统下 MySQL 完整安装配置

本次演示基于 MySQL 5.7 版本(兼容性强),通过官方 YUM 源安装。流程涵盖:卸载冲突环境→配置 YUM 源→安装服务→初始化→优化设置。

1. 卸载系统自带 MariaDB / 旧版 MySQL

首先检查并停止正在运行的 MariaDB 进程,避免卸载时资源占用报错:

# 检查 MariaDB 进程
ps ajx | grep mariadb
# 停止服务
systemctl stop mariadb.service
# 再次确认无相关进程
ps ajx | grep mariadb

接着查询并卸载相关安装包。若有多个包,建议使用通配符批量清理:

# 查询已安装的包
rpm -qa | grep mariadb
rpm -qa | grep mysql
# 卸载 MariaDB
sudo yum remove mariadb* mysql* -y

注意: 卸载前建议备份配置文件和数据目录,防止误删重要内容:

cp /etc/my.cnf /etc/my.cnf.bak
cp -r /var/lib/mysql /var/lib/mysql.bak

2. 配置 MySQL 官方 YUM 源

CentOS 7 默认源不含 MySQL 官方包,需手动添加。下载与系统版本匹配的 YUM 源包至关重要。

# 查看系统版本
cat /etc/redhat-release
# 输出示例:CentOS Linux release 7.8.2003 (Core)

# 下载 MySQL 5.7 YUM 源包
wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm
# 安装 YUM 源
sudo rpm -Uvh mysql57-community-release-el7-10.noarch.rpm

安装后会在 /etc/yum.repos.d/ 生成相关 repo 文件,验证如下:

ls /etc/yum.repos.d/ | grep mysql
yum list | grep mysql

若输出包含 mysql-community-server,说明源配置成功。

3. 安装 MySQL 服务

通过 YUM 安装服务端和客户端,-y 参数自动确认选项:

sudo yum install -y mysql-community-server

常见问题: 安装时若提示 GPG Keys 过期,需导入最新官方秘钥后重试。

4. 启动服务与验证状态

# 启动服务
systemctl start mysqld.service
# 设置开机自启
systemctl enable mysqld
# 重载配置
systemctl daemon-reload

# 验证进程
ps axj | grep mysqld

出现 /usr/sbin/mysqld 进程即表示启动成功。

5. 登录 MySQL 并修改初始密码

MySQL 5.7 安装后会生成临时 root 密码,位于 /var/log/mysqld.log。提取密码并登录:

# 提取临时密码
sudo grep 'temporary password' /var/log/mysqld.log
# 登录
mysql -uroot -p

密码策略调整: 5.7 默认开启强密码验证(含数字、符号、大小写,长度≥8)。若需简化设置,可先关闭策略:

-- 关闭密码强度验证
set global validate_password_policy=0;
-- 设置最小长度为 1 位
set global validate_password_length=1;
-- 修改 root 密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
-- 刷新权限
FLUSH PRIVILEGES;

若未找到临时密码,可直接回车登录;若登录失败,可通过修改配置文件跳过权限验证(skip-grant-tables)重置密码,记得重置后删除该配置并重启服务以恢复安全机制。

6. 核心配置优化

默认配置存在中文乱码风险,需修改 /etc/my.cnf 启用 UTF-8 编码和 InnoDB 引擎:

[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=utf8mb4
default-storage-engine=innodb
# innodb_buffer_pool_size = 128M

修改后重启服务生效:systemctl restart mysqld.service。

7. 常见问题排查

  • 无法输入中文: 检查终端 LANG 环境变量是否为 en_US.utf8,必要时修改 /etc/profile。
  • 服务启动失败: 查看错误日志 tail -100 /var/log/mysqld.log,排查端口占用或权限问题。

Ubuntu 系统下 MySQL 完整安装配置

Ubuntu(以 20.04/22.04 为例)使用 apt 包管理器,默认预装 MariaDB 的处理方式更简单。本次安装 MySQL 8.0。

1. 卸载 MariaDB

sudo systemctl stop mariadb
sudo apt remove mariadb-server mariadb-client mariadb-common -y
sudo apt autoremove -y
sudo apt clean

2. 更新源并安装

sudo apt update && sudo apt upgrade -y
sudo apt install mysql-server -y

Ubuntu 安装过程中无需手动设密,会自动创建 root 用户并使用 auth_socket 认证(本地免密登录)。

3. 验证与服务管理

sudo systemctl status mysql
sudo systemctl enable mysql

显示 active (running) 即成功。

4. 修改认证方式与密码

Ubuntu 默认不允许远程密码登录,需修改为 mysql_native_password:

sudo mysql -uroot

进入 SQL 交互界面执行:

USE mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的新密码';
FLUSH PRIVILEGES;
exit;

之后即可通过 mysql -uroot -p 正常登录。

5. 编码与核心配置

编辑 /etc/mysql/mysql.conf.d/mysqld.cnf,在 [mysqld] 节点添加:

character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
default-storage-engine = InnoDB
port = 3306
# bind-address = 127.0.0.1

同时编辑 /etc/mysql/conf.d/mysql.cnf 设置客户端编码:

[mysql]
default-character-set = utf8mb4

重启服务并验证:

sudo systemctl restart mysql
SHOW VARIABLES LIKE '%character%';

6. 开启远程访问(可选)

若需从其他机器连接,需授权 root 远程访问并开放防火墙:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的新密码' WITH GRANT OPTION;
FLUSH PRIVILEGES;
sudo ufw allow 3306/tcp
sudo ufw reload

至此,CentOS 与 Ubuntu 的 MySQL 环境均已就绪,后续可根据业务需求进行用户管理与性能调优。

目录

  1. 前置准备:处理 MariaDB 冲突
  2. CentOS 7 系统下 MySQL 完整安装配置
  3. 1. 卸载系统自带 MariaDB / 旧版 MySQL
  4. 检查 MariaDB 进程
  5. 停止服务
  6. 再次确认无相关进程
  7. 查询已安装的包
  8. 卸载 MariaDB
  9. 2. 配置 MySQL 官方 YUM 源
  10. 查看系统版本
  11. 输出示例:CentOS Linux release 7.8.2003 (Core)
  12. 下载 MySQL 5.7 YUM 源包
  13. 安装 YUM 源
  14. 3. 安装 MySQL 服务
  15. 4. 启动服务与验证状态
  16. 启动服务
  17. 设置开机自启
  18. 重载配置
  19. 验证进程
  20. 5. 登录 MySQL 并修改初始密码
  21. 提取临时密码
  22. 登录
  23. 6. 核心配置优化
  24. innodbbufferpool_size = 128M
  25. 7. 常见问题排查
  26. Ubuntu 系统下 MySQL 完整安装配置
  27. 1. 卸载 MariaDB
  28. 2. 更新源并安装
  29. 3. 验证与服务管理
  30. 4. 修改认证方式与密码
  31. 5. 编码与核心配置
  32. bind-address = 127.0.0.1
  33. 6. 开启远程访问(可选)

更多推荐文章

查看全部
  • OSCP 实战:获取并破解 Net-NTLMv2 哈希(下)
  • Python+AI 入门实战:轻量化工具与大模型微调
  • C++ 智能指针:使用场景、实现原理与内存泄漏防治
  • FPGA 入门指南:从点亮 LED 开始实战
  • 2026 丙午马年元旦祝福程序 Python 实现
  • 前端面试高频场景题汇总
  • C++ 泛型编程与模板技术详解
  • 职业低谷期的自我提升:Python 全栈学习路线与技能进阶
  • 零基础也能做网页?PyWebIO表单快速构建指南(新手必看)
  • AI 赋能原则 10 解读:政府 2.0 与全民智能时代的治理逻辑
  • C++ IO 流与四种类型转换操作符详解
  • 2026 年 3 月 18 日人工智能产业动态:算力、智能体与生态
  • OpenREALM:无人机实时映射框架的技术深度解析
  • ICLR 2024 杰出论文公布:大模型成最大赢家
  • OpenClaw 安装与飞书机器人配置实战指南
  • C++ 手写线程池日志模块:基于策略模式实现
  • 数据结构入门:链表分类详解与带头双向循环链表初始化
  • Go Map 底层原理深度解析
  • React 实战:从零构建井字棋游戏
  • Python 包中 import 与 from 关键字的应用场景

相关免费在线工具

  • 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