MySQL 在 Ubuntu 环境安装

Ubuntu 作为最常用的服务器发行版,安装 MySQL 相比 CentOS 更简洁,无需手动配置官方源 ,系统自带 APT 源即可直接安装。本教程以 Ubuntu 20.04 / 22.04 LTS 为例,覆盖安装、初始化、密码修改、远程连接、中文编码、权限配置、开机自启全流程,新手可直接跟着步骤完成。


一、安装前准备(必做)

1. 更新系统软件源

先更新 Ubuntu 软件包索引,避免安装时出现依赖错误

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

2. 卸载旧版本 / 冲突数据库(可选)

如果系统之前安装过 MySQL/MariaDB,先清理:

复制代码
# 停止服务
sudo systemctl stop mysql
# 卸载
sudo apt remove -y mysql-server mysql-client mariadb-server
# 清理残留配置
sudo apt autoremove -y
sudo rm -rf /etc/mysql /var/lib/mysql

二、一键安装 MySQL 8.0 服务

Ubuntu 官方源默认提供 MySQL 8.0 稳定版,直接安装即可:

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

安装过程无图形界面、无需手动输入密码,全程自动完成。

安装完成后,MySQL 会自动启动 ,并设置为开机自启


三、基础服务管理命令

1. 查看 MySQL 运行状态

复制代码
sudo systemctl status mysql

看到 active (running) 说明服务正常运行。

2. 常用服务命令

复制代码
# 启动
sudo systemctl start mysql
# 停止
sudo systemctl stop mysql
# 重启
sudo systemctl restart mysql
# 开机自启(默认已开启)
sudo systemctl enable mysql

四、安全初始化(强烈推荐)

MySQL 8.0 安装后自带安全配置脚本,一键加固安全:

复制代码
sudo mysql_secure_installation

执行后按以下步骤操作:

  1. 是否启用密码验证插件? → 输入 y 开启(提升密码强度)
  2. 设置 root 密码等级 → 建议选 2(强密码:大小写 + 数字 + 符号)
  3. 输入新的 root 密码 → 自定义强密码(必须牢记)
  4. 是否移除匿名用户?y
  5. 禁止 root 远程登录?y(默认安全)
  6. 删除 test 测试数据库?y
  7. 重新加载权限表?y

完成后,MySQL 基础安全配置生效。


五、登录 MySQL 与密码配置

1. 本地登录 MySQL

Ubuntu 安装后,root 用户默认使用系统权限认证,直接用 sudo 登录:

复制代码
sudo mysql -u root -p

输入你刚才设置的 root 密码,即可进入 MySQL 命令行。

2. 修改 root 密码(忘记密码 / 重置)

如果需要重置密码,执行以下 SQL:

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

修改后,下次登录直接用新密码即可。


六、开启远程连接(常用服务器配置)

默认 MySQL 只允许本地(127.0.0.1)连接,服务器需要开启外网访问

1. 修改 MySQL 配置文件

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

找到这一行:

复制代码
bind-address = 127.0.0.1

修改为:

复制代码
bind-address = 0.0.0.0

保存退出(ESC:wq)。

2. 创建远程访问用户(推荐)

不要直接用 root 远程连接,新建专用用户更安全:

复制代码
# 登录 MySQL
sudo mysql

# 创建远程用户(% 代表所有IP可访问)
CREATE USER '你的用户名'@'%' IDENTIFIED BY '你的密码';

# 分配全部权限(生产环境可按需缩小权限)
GRANT ALL PRIVILEGES ON *.* TO '你的用户名'@'%' WITH GRANT OPTION;

# 刷新权限
FLUSH PRIVILEGES;
exit

3. 重启 MySQL + 开放防火墙

复制代码
sudo systemctl restart mysql

# Ubuntu 防火墙开放 3306 端口
sudo ufw allow 3306/tcp
sudo ufw reload

完成后,即可用 Navicat/DBeaver 等工具远程连接。


七、解决中文乱码:配置 UTF-8 编码

MySQL 8.0 默认已使用 utf8mb4(支持表情的完整 UTF-8),只需确认配置:

查看编码

复制代码
SHOW VARIABLES LIKE 'character%';

只要看到:

  • character_set_server = utf8mb4
  • character_set_database = utf8mb4

无需修改,不会出现中文乱码。


八、常用配置优化(小服务器必备)

编辑配置文件:

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

[mysqld] 下添加优化配置:

复制代码
# 最大连接数
max_connections = 500
# 关闭域名解析(加速连接)
skip-name-resolve
# 慢查询日志
slow_query_log = 1
long_query_time = 2

重启生效:

复制代码
sudo systemctl restart mysql

九、常见问题排查

问题 1:无法远程连接

  1. 检查 bind-address 是否改为 0.0.0.0
  2. 检查防火墙是否开放 3306
  3. 检查用户是否授权 @'%'

问题 2:登录报错 Access denied

使用 sudo 登录后重置密码:

复制代码
sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

问题 3:启动失败

查看错误日志:

复制代码
sudo cat /var/log/mysql/error.log

常见原因:配置文件写错、目录权限异常。


十、卸载 MySQL(备用)

如果需要彻底卸载:

复制代码
sudo systemctl stop mysql
sudo apt remove -y mysql-server mysql-client
sudo apt autoremove -y
sudo rm -rf /etc/mysql /var/lib/mysql
相关推荐
不想好好取名字2 小时前
Ubuntu apt启用dbg符号库
linux·运维·ubuntu
betazhou2 小时前
xtrabackup压缩备份恢复案例
mysql·xtrabackup·备份恢复
HelloTonyGo10 小时前
个人游戏笔记本免费“养龙虾”(三)OpenClaw的安全配置指南
ubuntu·网络安全·配置·读写权限·openclaw
stuartevil11 小时前
【MySQL】SQL菜鸟教程(一)
sql·mysql·oracle
流星白龙11 小时前
【MySQL】7.MySQL基本查询(2)
android·mysql·adb
mldlds12 小时前
MySQL加减间隔时间函数DATE_ADD和DATE_SUB的详解
android·数据库·mysql
特立独行的猫a13 小时前
在 Windows 10 上安装和使用 WSL 2 安装 Ubuntu24详细指南
windows·ubuntu·wsl2
倔强的石头10613 小时前
KaiwuDB社区版 3.1.0 在 Ubuntu 22.04 部署实战:TLS 配置、踩坑复盘与轻量压测
数据库·ubuntu·kwdb
liwenzhuola13 小时前
解决 Ubuntu 上 Qt Creator 项目编译失败的问题
数据库·qt·ubuntu