温馨提示×

Ubuntu怎么配置MySQL

小樊
41
2026-07-12 15:20:55
栏目: 云计算

在 Ubuntu 上配置 MySQL,通常分为 安装、初始化、安全配置、远程访问、用户与数据库管理 几个步骤。下面给你一套从零到可用的完整流程(适用于 Ubuntu 20.04 / 22.04 / 24.04)。


一、安装 MySQL

1️⃣ 更新软件源

sudo apt update

2️⃣ 安装 MySQL Server

sudo apt install mysql-server -y

安装完成后,MySQL 会自动启动。


二、检查 MySQL 状态

sudo systemctl status mysql

✅ 看到 active (running) 表示运行正常。

常用命令:

sudo systemctl start mysql    # 启动
sudo systemctl stop mysql     # 停止
sudo systemctl restart mysql  # 重启

三、MySQL 初始化安全配置(强烈推荐)

运行官方安全脚本:

sudo mysql_secure_installation

常见选项说明:

  • 密码强度验证插件:建议选 y
  • 设置 root 密码:输入并确认
  • 移除匿名用户y
  • 禁止 root 远程登录y(后面可单独配置)
  • 删除 test 数据库y
  • 重新加载权限表y

四、登录 MySQL

方式一:使用 root 用户(默认 auth_socket)

sudo mysql

Ubuntu 默认 root 使用 socket 认证,不需要密码。

方式二:使用密码登录(推荐)

如果你想用密码登录:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
FLUSH PRIVILEGES;

然后就可以:

mysql -u root -p

五、创建数据库和用户(常用)

CREATE DATABASE testdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'localhost';

FLUSH PRIVILEGES;

六、配置远程访问(可选)

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️⃣ 创建允许远程登录的用户

CREATE USER 'remoteuser'@'%' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON *.* TO 'remoteuser'@'%' WITH GRANT OPTION;

FLUSH PRIVILEGES;

⚠️ 生产环境不建议 %,应指定 IP


3️⃣ 开放防火墙端口(如果有)

sudo ufw allow 3306/tcp

七、字符集与编码(推荐)

查看当前编码:

SHOW VARIABLES LIKE 'character_set%';

推荐配置(/etc/mysql/mysql.conf.d/mysqld.cnf):

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

八、常用命令速查

功能 命令
登录 mysql -u 用户名 -p
查看数据库 SHOW DATABASES;
切换数据库 USE dbname;
查看用户 SELECT user,host FROM mysql.user;
重启 sudo systemctl restart mysql

九、常见问题

❓ 登录报错 Access denied

  • 确认用户是否存在
  • 确认 host 是否匹配
  • 确认认证方式

❓ 远程连不上

  • bind-address
  • 防火墙
  • 用户 host 是否为 %

如果你愿意,我可以: ✅ 给你 Docker 方式安装 MySQL ✅ 帮你 配置 MySQL + PHP / Django / Spring Boot ✅ 针对 生产环境做安全加固方案

你现在用的是 Ubuntu 几?MySQL 用来做什么?

0