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
相关推荐
是2的10次方啊8 分钟前
MySQL索引优化实战:原则速查与踩坑案例(实战篇)
mysql
海蓝可知天湛17 分钟前
Ubuntu24.10禁用该源...+vmware无法复制黏贴“天坑闭环”——从 DNS 诡异解析到 Ubuntu EOL 引发的 apt 404排除折腾记
linux·服务器·安全·ubuntu·aigc·bug
vvw&18 分钟前
如何在 Ubuntu 24.04 上安装和使用 AdGuard
linux·运维·服务器·ubuntu·adguard
TTBIGDATA40 分钟前
【Ambari开启Kerberos】Step1-KDC服务初始化安装-适合Ubuntu
运维·数据仓库·hadoop·ubuntu·ambari·hdp·bigtop
AII_IIA3 小时前
Ubuntu误删libaudit.so.1 导致系统无法正常使用、崩溃
linux·ubuntu·selinux·audit·libaudit
Hello.Reader3 小时前
基于 Flink CDC 的 MySQL → Kafka Streaming ELT 实战
mysql·flink·kafka
L.EscaRC4 小时前
浅析MySQL InnoDB存储引擎的MVCC实现原理
数据库·mysql
-指短琴长-12 小时前
MySQL快速入门——基本查询(下)
android·mysql·adb
August_._13 小时前
【MySQL】SQL语法详细总结
java·数据库·后端·sql·mysql·oracle
淮北49414 小时前
windows11配置wsl安装ubuntu20.04
windows·学习·ubuntu·wsl