MySQL 是世界上最受欢迎的关系型数据库之一,在电商、SNS、论坛等场景中应用广泛。作为程序员,掌握数据库水平是衡量技术能力的重要指标。本文将基于 Linux 环境,从基础概念出发,完成 MySQL 的安装与配置。
MySQL 基础认知
什么是数据库?
简单来说,数据库是高效管理数据的工具。相比文件存储,它解决了四大问题:
本文介绍 MySQL 基础概念及在 Ubuntu 下的安装流程。涵盖数据库对比、架构与 SQL 分类,详细演示通过 APT 仓库安装 MySQL 8.0、安全初始化配置、服务验证以及使用 skip-grant-tables 重置 root 密码的步骤。旨在帮助开发者快速搭建 MySQL 环境并掌握基本管理操作。

MySQL 是世界上最受欢迎的关系型数据库之一,在电商、SNS、论坛等场景中应用广泛。作为程序员,掌握数据库水平是衡量技术能力的重要指标。本文将基于 Linux 环境,从基础概念出发,完成 MySQL 的安装与配置。
简单来说,数据库是高效管理数据的工具。相比文件存储,它解决了四大问题:
数据库的存储介质包括磁盘(持久化)和内存(临时缓存)。
选择数据库时,需根据项目规模和需求判断:
MySQL 的架构是插件式存储引擎,核心包括连接层、服务层、引擎层和存储层。SQL(结构化查询语言)可分为四类:
注意:安装与卸载过程中建议切换成 root 用户,一旦安装成功,普通用户也可以使用。
sudo apt update # 更新系统
sudo apt install wget lsb-release -y # 安装依赖工具
在 Linux 系统(尤其是 Debian/Ubuntu 系列)中,APT 仓库是存储软件包及其依赖关系的远程服务器集合,作用类似于'应用商店'。
# 下载官方 APT 仓库
wget https://dev.mysql.com/get/mysql-apt-config_0.8.24-1_all.deb
# 安装配置包,弹出选择界面时确保选中'MySQL 8.0'(默认已选),按提示选'OK'确认
sudo dpkg -i mysql-apt-config_0.8.24-1_all.deb
注:dpkg 是底层的软件包管理工具,全称是 Debian Package,主要用于直接处理.deb 格式的软件安装包。
sudo apt update
sudo apt install mysql-server -y
安装后默认存在匿名用户等安全隐患,需进行初始化配置:
sudo mysql_secure_installation
按照提示逐步操作:
刷新权限表:y
# 查看服务状态
sudo systemctl status mysql
# 用刚刚设置的 root 密码登录
sudo mysql -u root -p
在 MySQL 上设置免密登录实际上是修改 MySQL 配置文件,让其跳过密码登录,便于临时操作,比如忘记密码需要重置密码。
首先需要关闭正在运行的 MySQL 服务,否则无法修改配置。
# 关闭正在运行的 MySQL 服务
sudo systemctl stop mysql
# 查看 MySQL 的当前状态
sudo systemctl status mysql
修改 MySQL 的主配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf。
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
mysqld 模块下添加一行配置,用于跳过密码验证:skip-grant-tables
然后按 Ctrl+X,弹出是否保存,按 y,再按一次回车即保存退出。
sudo systemctl start mysql
做了以上步骤可以免密登录 MySQL 了,但 skip-grant-tables 会关闭权限校验,存在安全风险,比如 MySQL 中存在重要数据时,所以建议用于重置密码等临时操作,完成后将配置文件恢复。
mysql -u root
use mysql
UPDATE mysql.user SET plugin = 'caching_sha2_password' WHERE user = 'root' AND host = 'localhost';
FLUSH PRIVILEGES;
sudo systemctl stop mysql
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
sudo systemctl start mysql
mysql -u root
# 把新密码换成要设置的密码即可,并退出验证
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '新密码';
exit
mysql -u root -p
至此,免密登录后重设密码完成。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
在线格式化和美化您的 SQL 查询(它支持各种 SQL 方言)。 在线工具,SQL 美化和格式化在线工具,online
解析 INSERT 等受限 SQL,导出为 CSV、JSON、XML、YAML、HTML 表格(见页内语法说明)。 在线工具,SQL 转 CSV/JSON/XML在线工具,online
CSV 与 JSON/XML/HTML/TSV/SQL 等互转,单页多 Tab。 在线工具,CSV 工具包在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online