温馨提示×

Debian MySQL怎么配置

小樊
36
2026-08-26 04:07:20
栏目: 云计算

下面给你一份**在 Debian 系统上配置 MySQL(以 MySQL 8.x 为例)**的完整常见配置流程,从安装到常用配置项,适合服务器环境。


一、安装 MySQL(Debian)

1️⃣ 更新系统

sudo apt update
sudo apt upgrade -y

2️⃣ 安装 MySQL Server

sudo apt install mysql-server -y

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

检查状态:

sudo systemctl status mysql

二、初始安全配置(强烈建议)

运行官方安全脚本:

sudo mysql_secure_installation

常见选项说明:

  • ✅ 设置 root 密码(MySQL 8 默认使用 auth_socket,后面会讲)
  • ✅ 移除匿名用户
  • ✅ 禁止 root 远程登录(建议)
  • ✅ 删除 test 数据库
  • ✅ 刷新权限表

三、MySQL 登录方式说明(Debian 特有)

默认情况(auth_socket)

Debian 默认 root 用户只能通过系统 root 登录

sudo mysql

而不是:

mysql -u root -p

改为密码登录(可选)

如果你希望用密码登录:

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

然后:

mysql -u root -p

四、MySQL 配置文件位置

主配置文件:

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

编辑:

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

五、常见配置项说明

1️⃣ 监听地址(远程访问)

默认只允许本地:

bind-address = 127.0.0.1

允许所有 IP(⚠️ 需配合用户权限):

bind-address = 0.0.0.0

改完后重启:

sudo systemctl restart mysql

2️⃣ 字符集(防止乱码)

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

客户端:

[client]
default-character-set = utf8mb4

3️⃣ 最大连接数

max_connections = 200

查看当前连接数:

SHOW STATUS LIKE 'Threads_connected';

4️⃣ InnoDB 缓冲池(性能关键)

innodb_buffer_pool_size = 1G

建议设为 系统内存的 50%~70%


六、创建用户和数据库(推荐做法)

不要直接用 root 跑业务。

CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

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

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

FLUSH PRIVILEGES;

% 表示允许远程,若只本地:

CREATE USER 'myuser'@'localhost';

七、防火墙(如有)

UFW 示例:

sudo ufw allow 3306/tcp

⚠️ 生产环境不建议直接暴露 3306,建议:

  • 用 SSH 隧道
  • 或只允许指定 IP

八、常用管理命令

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

# 开机自启
sudo systemctl enable mysql

# 查看日志
sudo tail -f /var/log/mysql/error.log

九、版本确认

mysql --version

十、常见问题

❌ ERROR 1698 (28000)

这是 auth_socket 问题,参考第三节。

❌ 远程连接失败

  • bind-address
  • 用户 host
  • 防火墙
  • MySQL 端口

如果你愿意,可以告诉我:

  • ✅ Debian 版本(10 / 11 / 12)
  • ✅ MySQL 版本
  • ✅ 本地还是服务器
  • ✅ 是否要远程访问

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

0