【MySQL数据库基础】(一)保姆级 MySQL 环境配置教程!CentOS 7+Ubuntu 双系统全覆盖

【MySQL数据库基础】(一)保姆级 MySQL 环境配置教程!CentOS 7+Ubuntu 双系统全覆盖

前言

        作为后端开发、数据库学习的入门必备,MySQL 的环境配置是很多小伙伴的第一道 “小关卡”。尤其是不同 Linux 发行版(CentOS 7、Ubuntu)的安装步骤差异,再加上系统自带 MariaDB 的干扰、密码策略限制、中文编码等坑,很容易让人踩雷卡壳。

        这篇博客就带来保姆级 MySQL 环境配置指南,不仅详细拆解 CentOS 7 下的完整安装步骤(从卸载冲突环境到配置优化),还补充了 Ubuntu 系统的安装流程,全程命令可直接复制,新手也能一步到位搞定 MySQL 环境,告别配置报错的烦恼!下面就让我们正式开始吧!

一、前置知识:为什么要先处理 MariaDB?

        MySQL 被 Oracle 收购后,很多 Linux 发行版(比如 CentOS 7、Ubuntu)会默认预装MariaDB—— 它是 MySQL 的分支,语法兼容但底层有差异,会和官方 MySQL 产生端口、配置文件的冲突,因此安装 MySQL 前必须彻底卸载 MariaDB,这是配置成功的关键第一步!

        本文中所有操作优先使用root用户执行(普通用户需加sudo获取权限),初期学习阶段建议直接用 MySQL root 用户操作,后续熟悉用户管理后再创建普通用户即可。

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

        本次 CentOS 7 环境安装的是 MySQL 5.7 版本(兼容性强、学习常用),全程通过官方 YUM 源安装,稳定无第三方依赖问题,步骤分为卸载冲突环境→配置官方 YUM 源→安装 MySQL→初始化配置→优化设置五大环节。

2.1 卸载系统自带 MariaDB / 旧版 MySQL

步骤 1:检查 MariaDB 进程并停止

        首先查看系统中是否有 MariaDB 进程在运行,有则立即停止,避免卸载时出现资源占用报错:

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

步骤 2:检查并卸载相关安装包

        通过rpm命令查询系统中已安装的 MariaDB/MySQL 相关包,然后逐一卸载:

# 查询MariaDB安装包 rpm -qa | grep mariadb # 查询MySQL安装包(若有旧版) rpm -qa | grep mysql # 卸载MariaDB(替换为查询到的包名,也可直接批量卸载) sudo yum remove mariadb -y # 若有多个包,可直接通配符卸载 sudo yum remove mariadb* mysql* -y 

步骤 3:备份重要配置和数据

        卸载前建议备份 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 版本,避免兼容性问题。

步骤 1:查看系统版本

        确认 CentOS 7 的具体版本,保证后续下载的 YUM 源和系统匹配:

cat /etc/redhat-release 

        输出示例:CentOS Linux release 7.8.2003 (Core)

步骤 2:下载并安装官方 YUM 源

        MySQL 官方 YUM 源地址:http://repo.mysql.com/,我们下载 MySQL 5.7 的 CentOS 7 专属 YUM 源包并安装:

# 下载MySQL 5.7 YUM源包 wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm # 安装YUM源(普通用户加sudo,解决权限问题) sudo rpm -Uvh mysql57-community-release-el7-10.noarch.rpm 

步骤 3:验证 YUM 源安装成功

        安装后会在/etc/yum.repos.d/目录下生成 mysql-community.repo 和 mysql-community-source.repo 两个文件,验证如下:

# 查看YUM源目录,确认出现MySQL相关repo文件 ls /etc/yum.repos.d/ | grep mysql 

步骤 4:检查 YUM 源可用性

        确认 MySQL YUM 源可正常识别,执行如下命令查看可安装的 MySQL 包:

yum list | grep 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 并验证服务状态

步骤 1:启动 MySQL 服务

# 启动MySQL服务 systemctl start mysqld.service # 设置开机自启(可选,建议开启,避免重启系统后服务失效) systemctl enable mysqld # 重载系统服务配置 systemctl daemon-reload 

步骤 2:验证 MySQL 服务是否运行

        通过进程查询确认 MySQL 服务正常启动:

ps axj | grep mysqld 

        若输出中出现/usr/sbin/mysqld相关进程,说明服务启动成功。

2.5 登录 MySQL 并修改初始密码

        MySQL 5.7 安装后会自动生成临时 root 密码,存放在/var/log/mysqld.log日志文件中,必须先通过临时密码登录,再修改为自定义密码,以下提供 3 种登录方法,按顺序尝试即可。

方法 1:通过临时密码登录(推荐,99% 可用)

# 从日志中提取临时root密码 sudo grep 'temporary password' /var/log/mysqld.log 

        输出示例:root@localhost: yLMalT:v+5l*(冒号后为临时密码,复制即可)

# 登录MySQL,输入上述临时密码 mysql -uroot -p 

        密码策略限制:MySQL 5.7 默认开启密码强度验证,要求密码包含数字、符号、大小写字母,长度至少 8 位,新手可先关闭该策略,再设置简单密码:

-- 关闭密码强度验证策略(0为最低,1为中,2为高) set global validate_password_policy=0; -- 设置密码最小长度为1位 set global validate_password_length=1; -- 修改root本地登录密码(替换为自己的密码,示例:[email protected]) ALTER USER 'root'@'localhost' IDENTIFIED BY '[email protected]'; -- 刷新权限,使配置生效 FLUSH PRIVILEGES; 

        执行完成后,退出 MySQL 重新登录即可使用新密码。

方法 2:直接登录(适用于新版 MySQL,无临时密码)

        若上述命令未提取到临时密码,说明安装的 MySQL 版本无初始密码,直接执行如下命令登录:

mysql -uroot -p 

        出现密码输入框时直接回车,即可成功登录,后续按方法 1 修改密码即可。

方法 3:跳过权限验证登录(适用于密码丢失 / 登录失败)

        若前两种方法均失败,可通过修改配置文件跳过 MySQL 权限验证,强制登录后重置密码:

# 编辑MySQL主配置文件 vim /etc/my.cnf 

        在[mysqld]节点最后添加如下配置,保存并退出(vim 中按i编辑,ESC+:wq保存):

# 跳过MySQL权限验证 skip-grant-tables 
# 重启MySQL服务,使配置生效 systemctl restart mysqld.service # 直接登录,无需输入密码 mysql -uroot 

        登录后执行如下 SQL 重置密码,重置后必须删除 skip-grant-tables 配置并重启服务,否则 MySQL 无权限验证,存在安全风险:

-- 切换到mysql系统库 USE mysql; -- 重置root密码(替换为自己的密码) UPDATE user SET authentication_string=PASSWORD('[email protected]') WHERE User='root' AND Host='localhost'; -- 刷新权限 FLUSH PRIVILEGES; -- 退出MySQL exit; 
# 编辑配置文件,删除skip-grant-tables配置 vim /etc/my.cnf # 重启MySQL服务 systemctl restart mysqld.service 

2.6 MySQL 配置优化(编码、存储引擎)

        默认的 MySQL 配置存在中文编码乱码、存储引擎未指定等问题,需要修改/etc/my.cnf配置文件,优化核心参数,本次配置UTF-8 编码InnoDB 默认存储引擎(MySQL 主流存储引擎,支持事务、行锁)。

# 编辑配置文件 vim /etc/my.cnf 

        按如下内容修改,保留原有配置,补充缺失项即可:

[mysql] # 客户端编码(暂不设置,避免MySQL汉字回显bug,可后续根据需求开启) # default-character-set=utf8 [mysqld] # MySQL端口,默认3306 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 # 服务端编码,UTF-8 character-set-server=utf8 # 默认存储引擎InnoDB default-storage-engine=innodb # InnoDB缓冲池大小,根据服务器内存调整,专用服务器设为内存70%,普通服务器10% # innodb_buffer_pool_size = 128M 

        修改完成后,重启 MySQL 服务使配置生效:

systemctl restart mysqld.service 

2.7 CentOS 7 安装后常见问题解决

问题 1:配置 UTF-8 后仍无法输入中文

        原因:终端本身不支持 UTF-8 编码,而非 MySQL 配置问题。

        解决方案:检查终端 LANG 环境变量,确保为 UTF-8 编码:

# 查看LANG变量 env | grep LANG 

        若输出不是LANG=en_US.utf8,则修改终端编码(永久生效需修改/etc/profile文件):

# 临时设置UTF-8编码 export LANG=en_US.utf8 # 永久设置,编辑profile文件 echo "export LANG=en_US.utf8" >> /etc/profile # 使配置生效 source /etc/profile 

问题 2:MySQL 服务启动失败

        排查思路:查看 MySQL 错误日志,定位具体失败原因:

# 查看错误日志最后100行 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

# 停止MariaDB服务 sudo systemctl stop mariadb # 卸载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(包含服务端 + 客户端 + 依赖):

# 更新apt软件源 sudo apt update && sudo apt upgrade -y # 安装MySQL服务 sudo apt install mysql-server -y 

        安装过程中无需手动设置密码,Ubuntu 的 MySQL 会自动创建 root 用户并采用auth_socket认证方式(仅本地 root 用户可登录,无需密码)。

3.3 验证 MySQL 服务状态

# 查看MySQL服务状态 sudo systemctl status mysql # 设置开机自启 sudo systemctl enable mysql 

        若输出中显示active (running),说明服务启动成功。

3.4 配置 MySQL root 用户密码与登录方式

        Ubuntu 安装的 MySQL 默认不允许密码登录,需要先修改认证方式为mysql_native_password,再设置密码,步骤如下:

# 以root身份登录MySQL(Ubuntu本地免密) sudo mysql -uroot 

        执行如下 SQL 语句,修改 root 密码并更改认证方式:

-- 切换到mysql系统库 USE mysql; -- 修改root认证方式为密码认证,设置密码(替换为自己的密码) ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MySql@123456'; -- 刷新权限 FLUSH PRIVILEGES; -- 退出MySQL exit; 

        修改完成后,即可通过密码正常登录:

mysql -uroot -p 

        输入设置的密码,即可成功登录。

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 # 允许远程访问(注释掉bind-address,默认绑定127.0.0.1,仅本地可访问) # bind-address = 127.0.0.1 
# 编辑客户端配置文件,设置客户端编码 sudo vim /etc/mysql/conf.d/mysql.cnf 

        在[mysql]节点添加:

default-character-set = utf8mb4 

        修改完成后,重启 MySQL 服务:

sudo systemctl restart mysql 

        验证编码配置是否生效:

-- 登录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 用户远程访问

mysql -uroot -p 
-- 授权root用户从任意IP访问(%表示任意IP,可替换为具体IP,如192.168.1.100) 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 # 开放3306/TCP端口 sudo ufw allow 3306/tcp # 重启防火墙 sudo ufw reload 

        完成后,即可在本地通过 Navicat、DataGrip 等工具,输入 Ubuntu 服务器 IP、3306 端口、root 账号密码连接 MySQL。


总结

        MySQL 的环境配置是基础,掌握不同系统的安装方法,能快速适配各种开发环境。后续可以继续学习 MySQL 的用户管理、数据库设计、SQL 语句优化等内容,打好后端开发的数据库基础。

        如果配置过程中遇到其他报错,欢迎在评论区留言,我会第一时间解答!觉得这篇教程有用的话,记得点赞 + 收藏哦~

Read more

时序数据库选型革命:深入解析Apache IoTDB的架构智慧与实战指南

时序数据库选型革命:深入解析Apache IoTDB的架构智慧与实战指南

目录 引言:时序数据时代的到来 第一章 时序数据的独特魅力与挑战 1.1 时序数据的"个性特征" 1.2 时序数据管理的"技术大山" 第二章 时序数据库的"心脏"——存储引擎 2.1 架构演进:从通用到专用 2.2 IoTDB的创新存储设计 第三章 选型的"金标准"——关键指标详解 3.1 性能指标:数据库的"体能测试" 3.2 功能完备性:数据库的"技能树"

By Ne0inhk

在 Windows 上安装 WSL Ubuntu 的完整避坑指南:从报错到成功运行

问题背景 最近在尝试通过 Windows Subsystem for Linux (WSL) 安装 Ubuntu 时,遇到了一系列报错。最初的步骤是直接使用 wsl --install 命令,但安装完成后发现系统中并未自动安装默认的 Ubuntu 发行版。随后尝试通过命令行手动选择发行版,却提示 “无法找到指定的分发版” (Distribution not found)。本文将记录整个排查过程,最终通过 手动启用 Windows 功能 和 应用商店直接安装 的方式成功运行 WSL Ubuntu。 错误复现与初步排查 1. 初始操作步骤 1. 以管理员身份打开 PowerShell 或 CMD 。 尝试手动列出可用发行版并选择安装: wsl --list --online # 查询可用的发行版名称 wsl --install --distribution

By Ne0inhk

在 CentOS 7.9 上安装 OpenClaw:完整指南(此文章由openclaw生成)

在 CentOS 7.9 上安装 OpenClaw:完整指南 CentOS 7.9 虽然已经停止维护,但在许多企业环境中仍在运行。本文将详细介绍如何在这个经典系统上部署现代化的 AI 助手框架 OpenClaw。 为什么选择 OpenClaw? OpenClaw 是一个开源的 AI 助手运行时,支持多模型、多通道、技能扩展,让你可以轻松构建个性化的 AI 助手。主要特性: * 🧠 支持 Kimi、Gemini、Claude 等多种大语言模型 * 📱 内置飞书、钉钉、企微、QQ、Telegram 等通道支持 * 🔌 丰富的技能市场(clawhub.com) * ⚡ 轻量级,资源占用低 * 🔧 配置简单,扩展灵活 环境准备 1. 系统要求

By Ne0inhk
【实战教程】Ubuntu20.04 下 PX4+Gazebo+Mid360+Tare Planner 全流程搭建

【实战教程】Ubuntu20.04 下 PX4+Gazebo+Mid360+Tare Planner 全流程搭建

最近不少小伙伴私信问 PX4 结合 Mid360 激光雷达和 Tare Planner 的环境搭建问题,索性整理了一份保姆级实战教程,基于 Ubuntu20.04 + I7 笔记本环境,从 PX4 源码编译到 Gazebo 仿真、Mid360/IMU 集成,再到 Tare Planner 部署,全程踩坑总结 + 实操指令,新手也能跟着跑通。 一、基础环境:PX4 源码编译与环境配置 1.1 源码下载与分支切换 首先搞定 PX4 核心源码,建议选择 V1.13 版本(稳定性高,适配性好): # 创建PX4专属目录,克隆源码(--recursive拉取子模块) git clone

By Ne0inhk