适用人群
刚接触 Linux 和数据库的新手。
目标
快速装好 MySQL,用 root 用户练习 SQL,无需复杂权限配置。
系统要求
Ubuntu 20.04 / 22.04 / 24.04 LTS(阿里云、腾讯云、AWS EC2 等均可)
在 Ubuntu 20.04/22.04/24.04 系统上安装 MySQL 8.0 的完整步骤。内容包括清理旧数据库、添加官方 APT 源、安装服务、验证运行状态、设置 root 密码及 UTF-8 编码配置。同时提供了常见问题的解决方案,如 GPG 密钥错误和中文乱码处理,帮助新手快速完成环境搭建。

刚接触 Linux 和数据库的新手。
快速装好 MySQL,用 root 用户练习 SQL,无需复杂权限配置。
Ubuntu 20.04 / 22.04 / 24.04 LTS(阿里云、腾讯云、AWS EC2 等均可)
sudo 权限(大多数云服务器默认如此)。登录后,你会看到类似这样的提示符:
your_username@your-server:~$
⚠️ 即使你是新服务器,也建议执行这一步,避免隐藏的 MariaDB 干扰。
在终端中逐行输入以下命令(每输一行按一次回车):
sudo systemctl stop mariadb mysql 2>/dev/null
💡 如果看到
Failed to stop...也没关系,说明没装。
dpkg -l |grep -E 'mariadb|mysql'
✅ 如果没有任何输出 → 说明干净,跳到第三步。
❌ 如果有输出(例如 mariadb-server、mysql-common 等)→ 继续下面操作。
sudo apt remove --purge mariadb* mysql* -y
sudo rm -rf /etc/mysql /var/lib/mysql
sudo apt autoremove -y
sudo apt autoclean
🛑 重要提醒:
/var/lib/mysql是数据库文件存放目录,删除后所有数据不可恢复!确保你不需要旧数据。
Ubuntu 自带的 MySQL 版本可能较旧。我们使用 MySQL 官方源 安装最新稳定版(8.0)。
在终端中执行:
cd /tmp
wget https://dev.mysql.com/get/mysql-apt-config_0.8.34-1_all.deb
✅ 成功时你会看到类似下载进度条。
sudo dpkg -i mysql-apt-config_0.8.34-1_all.deb
mysql-8.0(如果不是,按空格切换)<OK>,再按 回车✅ 正确配置后,系统就知道要去 MySQL 官网下载 8.0 版本了。
sudo apt update
💡 如果看到
NO_PUBKEY警告,先忽略(后面会解决)。
在终端中执行:
sudo apt install mysql-server -y
你会看到类似输出:
Setting up mysql-server-8.0 (8.0.xx-1ubuntu22.04) ...
...
Created symlink /etc/systemd/system/multi-user.target.wants/mysql.service → /lib/systemd/system/mysql.service.
✅ 安装完成后,MySQL 服务自动启动,但不会让你设置密码!
sudo systemctl status mysql
✅ 成功标志:看到绿色的 active (running),例如:
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; preset: enabled)
Active: active (running) since Wed 2026-01-28 20:20:00 UTC; 10s ago
sudo mysql
✅ 如果成功,你会看到:
Welcome to the MySQL monitor...
mysql>
🎯 这个
mysql>提示符表示:你已进入 MySQL 数据库内部!接下来的所有命令都在这里输入。
输入 EXIT; 退出回到 Linux 终端:
EXIT;
📌 重点:以下所有 SQL 命令必须在
mysql>提示符下输入!
sudo mysql
你现在应该看到:
mysql>
💡 注意:每条 SQL 语句必须以分号
;结尾!
-- 第 1 条:关闭密码强度策略(允许简单密码)
SET GLOBAL validate_password.policy = LOW;
✅ 成功输出:Query OK, 0 rows affected (0.00 sec)
-- 第 2 条:设置最小密码长度为 4 位
SET GLOBAL validate_password.length = 4;
✅ 成功输出:Query OK, 0 rows affected (0.00 sec)
-- 第 3 条:修改 root@localhost 的密码为 123456,并改用传统密码认证
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
✅ 成功输出:Query OK, 0 rows affected (0.01 sec)
-- 第 4 条:刷新权限,使修改立即生效
FLUSH PRIVILEGES;
✅ 成功输出:Query OK, 0 rows affected (0.00 sec)
-- 第 5 条:退出 MySQL
EXIT;
🟢 现在你回到了 Linux 终端提示符(如
your_name@server:~$)
在终端中输入:
mysql -u root -p
系统会提示:
Enter password:
👉 输入你刚设置的密码:123456(输入时不会显示字符,这是正常的安全设计)
✅ 如果看到 mysql>,说明密码登录成功!
再次输入 EXIT; 退出。
💡 现在你可以用 DBeaver、Navicat、DataGrip 等工具,用以下信息连接: Host: 你的服务器 IP Port: 3306 User: root Password: 123456
在终端中执行:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld] 段落它看起来像这样:
[mysqld]
# # * Basic Settings *
user = mysql
...
[mysqld] 段落下添加两行(用方向键移动光标,在合适位置按回车插入):character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
✅ 最终效果:
Ctrl + O → 屏幕底部提示'Write File'Enter 确认文件名Ctrl + X 退出编辑器sudo systemctl restart mysql
mysql -u root -p
# 输入密码 123456
在 mysql> 中输入:
SHOW VARIABLES LIKE 'character_set%';
✅ 正确结果:所有 character_set_* 的值都是 utf8mb4,例如:
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8mb4 |
| character_set_connection | utf8mb4 |
| character_set_database | utf8mb4 |
| character_set_filesystem | binary |
| character_set_results | utf8mb4 |
| character_set_server | utf8mb4 |
| character_set_system | utf8 |
+--------------------------+----------------------------+
输入 EXIT; 退出。
错误示例:
NO_PUBKEY 467B942D3A79BD29
解决方法:
# 下载并信任 MySQL 官方密钥
sudo apt install -y gnupg wget
wget -O /tmp/mysql-key https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/mysql.gpg /tmp/mysql-key
sudo apt update
然后重新执行 sudo apt install mysql-server -y
如果不是,设置:
sudo locale-gen en_US.UTF-8
sudo update-locale LANG=en_US.UTF-8
检查系统编码:
locale
应包含 LANG=en_US.UTF-8 或 zh_CN.UTF-8
因为你是用 sudo mysql 无密码登录的,所以永远可以通过它重置密码(参考第六步)。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 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