Ubuntu 系统下 MySQL 8.0 安装与远程访问完整教程

一、前言

MySQL 是目前最流行的开源关系型数据库管理系统之一,被广泛应用于网站后台、数据分析以及各种中小型业务系统中。

在 Ubuntu 上安装 MySQL 8.0 非常方便,但为了提高速度与安全性,建议使用国内镜像源并进行安全初始化。

本文将带你一步步完成:

  • ✅ MySQL 8.0 安装

  • ✅ 安全初始化与 root 密码设置

  • ✅ 远程访问配置

  • ✅ 防火墙放行与连接验证


二、更新系统包

在开始前,先更新系统软件包:

复制代码
sudo apt update sudo apt upgrade -y

若更新速度较慢,可参考文末"附录:加速 apt update"的镜像源优化方法。


三、安装 MySQL 8.0

Ubuntu 官方软件仓库自带 MySQL 8.0,无需手动添加源。

复制代码
sudo apt install mysql-server -y

安装完成后,可查看版本信息:

复制代码
mysql --version

输出类似:

复制代码
mysql Ver 8.0.40-0ubuntu0.22.04.1 for Linux on x86_64

四、启动 MySQL 服务并设置开机自启

复制代码
sudo systemctl enable mysql sudo systemctl start mysql sudo systemctl status mysql

当状态显示 active (running) 时,说明服务启动成功。


五、执行安全初始化(强烈推荐)

MySQL 安装完成后,建议执行安全脚本对数据库进行基础加固:

复制代码
sudo mysql_secure_installation

按提示完成以下步骤:

  1. 设置 root 密码

  2. 删除匿名用户

  3. 禁止 root 远程登录(按需选择)

  4. 删除测试数据库

  5. 重新加载权限表


六、配置 root 账号密码登录

默认情况下,Ubuntu 的 root 用户通过 auth_socket 插件登录,不需要密码。

为了方便后续管理,我们改为使用密码登录:

复制代码
sudo mysql

进入 MySQL 后执行:

复制代码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; FLUSH PRIVILEGES;

退出并验证:

复制代码
mysql -u root -p

输入密码后即可登录。


七、允许远程连接(可选)

1️⃣ 修改配置文件

编辑 MySQL 主配置文件:

复制代码
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

找到如下行:

复制代码
bind-address = 127.0.0.1

修改为:

复制代码
bind-address = 0.0.0.0

保存后重启服务:

复制代码
sudo systemctl restart mysql

2️⃣ 授权远程访问用户

进入 MySQL:

复制代码
mysql -u root -p

执行以下 SQL(开放给任意主机访问):

复制代码
CREATE USER 'youruser'@'%' IDENTIFIED BY 'yourpassword'; GRANT ALL PRIVILEGES ON *.* TO 'youruser'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;

🔒 安全建议:

% 改为特定 IP 地址,例如 'youruser'@'1.2.3.4',避免被扫描攻击。


八、开放防火墙端口

Ubuntu 默认使用 ufw 防火墙,可用以下命令开放 3306 端口:

复制代码
sudo ufw allow 3306/tcp sudo ufw reload sudo ufw status

九、测试远程连接

在另一台主机上运行:

复制代码
mysql -h <服务器公网IP> -u youruser -p

若能成功连接并显示 MySQL 提示符,说明远程访问配置完成 ✅。


🔧 十、(可选)使用官方 MySQL APT 源

如果系统自带的 MySQL 版本较旧,可使用 MySQL 官方源获取最新版:

复制代码
wget https://dev.mysql.com/get/mysql-apt-config_0.8.32-1_all.deb 
sudo dpkg -i mysql-apt-config_0.8.32-1_all.deb 
sudo apt update 
sudo apt install mysql-server -y

安装过程中可选择 MySQL 版本(默认 8.0 即可)。


🧠 十一、常见问题排查

问题 解决方案
Can't connect to MySQL server 检查防火墙、bind-address、用户权限
Access denied for user 检查授权 IP 与密码
Port 3306 already in use 修改配置文件端口号后重启
服务未启动 执行 sudo systemctl restart mysql

查看服务日志:

复制代码
sudo journalctl -u mysql -xe

💡 十二、附录:加速 apt update(国内镜像源)

若执行 sudo apt update 速度过慢,可替换为国内源:

🔹 阿里云源(推荐)

编辑源文件:

复制代码
sudo nano /etc/apt/sources.list

内容(以 Ubuntu 22.04 为例):

复制代码
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse

保存后更新:

复制代码
sudo apt clean sudo apt update

速度可从几十 KB/s 提升到数 MB/s 🚀


✅ 十三、总结

本文完整介绍了在 Ubuntu 上安装 MySQL 8.0 的步骤与注意事项:

步骤 内容
1 更新系统包
2 安装 MySQL
3 启动并设置开机自启
4 执行安全初始化
5 修改 root 登录方式
6 配置远程访问
7 放行防火墙端口
8 验证连接

📌 提示:生产环境建议只开放特定 IP 的访问权限,并启用强密码策略,避免暴露在公网中。


📚 参考命令速查表

复制代码
# 启动服务
sudo systemctl start mysql

# 查看状态
sudo systemctl status mysql

# 重启服务
sudo systemctl restart mysql

# 登录 MySQL
mysql -u root -p

# 开放防火墙端口
sudo ufw allow 3306/tcp
相关推荐
Roc.Chang2 小时前
Ubuntu 下 VLC 无法启动(Segmentation fault)终极解决方案
linux·ubuntu·vlc·媒体播放
Anesthesia丶2 小时前
Ubuntu20.04 升级 Ubuntu24.04 LTS
ubuntu
·云扬·4 小时前
MySQL 8.0 Redo Log 归档与禁用实战指南
android·数据库·mysql
符哥20085 小时前
Ubuntu 常用指令集大全(附实操实例)
数据库·ubuntu·postgresql
筵陌5 小时前
MySQL索引及其底层原理(上)
mysql
陌上花开缓缓归以6 小时前
linux mtd-utils使用源码分析(ubuntu测试版)
linux·arm开发·ubuntu
怣506 小时前
MySQL子查询零基础入门教程:从小白到上手(零基础入门版)
数据库·mysql
猫头虎7 小时前
基于信创openEuler系统安装部署OpenTeleDB开源数据库的实战教程
数据库·redis·sql·mysql·开源·nosql·database
Nandeska7 小时前
17、MySQL InnoDB ReplicaSet
数据库·mysql
AI_56787 小时前
SQL性能优化全景指南:从量子执行计划到自适应索引的终极实践
数据库·人工智能·学习·adb