温馨提示×

Debian MySQL如何创建用户

小樊
40
2026-07-02 06:40:11
栏目: 云计算

Debian 系统上,MySQL(或 MariaDB)创建用户的步骤如下,适用于 MySQL 5.7+ / MySQL 8.0+ / MariaDB


一、登录 MySQL

sudo mysql -u root -p

输入 root 密码后进入 MySQL 命令行。


二、创建用户

✅ MySQL 8.0 推荐方式

CREATE USER '用户名'@'主机' IDENTIFIED BY '密码';

示例:

CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'Test@123456';

⚠️ MySQL 8 默认使用 caching_sha2_password,远程客户端可能不兼容,可改为 mysql_native_password(见下方)。


✅ 兼容旧客户端(远程连接常见)

CREATE USER 'testuser'@'%' 
IDENTIFIED WITH mysql_native_password 
BY 'Test@123456';

说明:

  • localhost:仅本机
  • %:允许所有远程主机

三、给用户授权

授权某个数据库

GRANT ALL PRIVILEGES ON 数据库名.* TO 'testuser'@'%';

示例:

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

授权部分权限

GRANT SELECT, INSERT, UPDATE ON testdb.* TO 'testuser'@'%';

刷新权限(很重要)

FLUSH PRIVILEGES;

四、查看用户

SELECT user, host FROM mysql.user;

五、删除用户(可选)

DROP USER 'testuser'@'%';

六、常见问题

❌ 远程连接失败

  1. 用户 host 不是 %
  2. MySQL 只监听 127.0.0.1

检查配置:

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

确认:

bind-address = 0.0.0.0

重启 MySQL:

sudo systemctl restart mysql

❌ 防火墙问题

sudo ufw allow 3306

七、总结(最简示例)

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

如果你告诉我:

  • ✅ MySQL 版本(mysql -V
  • ✅ 本地还是远程连接
  • ✅ 是否需要 root 权限

我可以给你 完全定制的命令

0