温馨提示×

Ubuntu怎样配置MySQL

小樊
63
2026-10-09 23:58:47
栏目: 云计算

下面按最常见场景给你一个从零开始的 Ubuntu 配置 MySQL 指南(以 Ubuntu 20.04 / 22.04 + MySQL 8.0 为例,其他版本类似)。


一、安装 MySQL

1. 更新系统

sudo apt update
sudo apt upgrade -y

2. 安装 MySQL Server

sudo apt install mysql-server -y

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


二、基础安全配置(强烈推荐)

运行官方安全脚本:

sudo mysql_secure_installation

按提示操作,一般包括:

  • 设置 root 密码(MySQL 8 默认使用 auth_socket,见下文)
  • 删除匿名用户
  • 禁止 root 远程登录
  • 删除 test 数据库
  • 刷新权限

三、登录 MySQL

方式一:使用 sudo(默认)

sudo mysql

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

默认 root 使用 auth_socket,不能用密码登录。

修改为密码登录

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

之后可用:

mysql -u root -p

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

CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';

GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost';

FLUSH PRIVILEGES;

五、允许远程访问(如需要)

1. 修改配置文件

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

找到:

bind-address = 127.0.0.1

改为:

bind-address = 0.0.0.0

重启 MySQL:

sudo systemctl restart mysql

2. 创建远程用户

CREATE USER 'remote'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'remote'@'%';
FLUSH PRIVILEGES;

⚠️ 云服务器还需开放 3306 端口


六、常用管理命令

# 启动
sudo systemctl start mysql

# 停止
sudo systemctl stop mysql

# 重启
sudo systemctl restart mysql

# 开机自启
sudo systemctl enable mysql

# 查看状态
sudo systemctl status mysql

七、字符集推荐配置(避免乱码)

在 /etc/mysql/mysql.conf.d/mysqld.cnf 中添加:

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

重启 MySQL 生效。


八、常见问题

1. 忘记 root 密码

sudo systemctl stop mysql
sudo mysqld_safe --skip-grant-tables &

然后重置密码。

2. 无法连接

  • 检查 bind-address
  • 检查防火墙
  • 检查用户 host(localhost vs %)

如果你告诉我:

  • Ubuntu 版本
  • MySQL 版本
  • 是否是云服务器 / 本地虚拟机
  • 是否需要远程访问

我可以给你更精确的配置方案。

0 踩