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
相关推荐
fruge9 小时前
Ubuntu服务器已下载Nginx安装包的安装指南
服务器·nginx·ubuntu
Do_GH10 小时前
【Linux】07.Ubuntu开发环境部署
linux·运维·ubuntu
-雷阵雨-10 小时前
MySQL——桥梁JDBC
数据库·mysql·oracle
sulikey12 小时前
从实验出发深入理解Linux目录权限:r、w、x分别控制什么?能否进入目录到底由谁决定?
linux·运维·服务器·ubuntu·centos
叶凡要飞12 小时前
RTX5060Ti安装双系统ubuntu22.04各种踩坑点(黑屏,引导区修复、装驱动、server版本安装)
人工智能·python·yolo·ubuntu·机器学习·操作系统
JanelSirry12 小时前
MySQL分区表(PARTITION):水平分表示例 (基于用户ID哈希分表)不依赖第三方中间件
mysql·中间件·哈希算法
李白你好12 小时前
一款专业的多数据库安全评估工具,支持 **PostgreSQL、MySQL、Redis、MSSQL** 等多种数据库的后渗透操作
数据库·mysql·postgresql
恋红尘13 小时前
Mysql
数据库·mysql
m0_64880493_江哥17 小时前
用正则方法从中英文本提取英文的python示例
python·mysql·正则表达式