如何在mysql中创建用户_mysql用户创建语法说明

来源:这里教程网 时间:2026-02-28 20:31:10 作者:

在 MySQL 中创建用户,核心是使用 CREATE USER 语句,配合 GRANT(授权)才能让新用户真正可用。MySQL 8.0+ 默认启用密码强度策略,且推荐使用强密码和明确指定认证插件。

基本创建语法(MySQL 8.0+)

推荐写法,显式指定身份验证插件和密码:

CREATE USER 'username'@'host' IDENTIFIED WITH mysql_native_password BY 'strong_password';
'username':登录用户名,区分大小写; 'host':允许连接的客户端地址,常用
'localhost'
(仅本机)、
'192.168.1.%'
(某网段)、
'%'
(任意主机,注意安全风险);
mysql_native_password:兼容性最好的认证插件,适用于大多数客户端(如 Navicat、MySQL Workbench、旧版 JDBC); 密码必须满足当前策略(如至少 8 位、含大小写字母+数字+特殊字符)。

创建后必须授权才能操作数据库

CREATE USER 只建账号,不赋予任何权限。需用 GRANT 显式授权:

GRANT SELECT, INSERT ON mydb.* TO 'username'@'host';<br>FLUSH PRIVILEGES;
权限可细化到全局(
*.*
)、库级(
mydb.*
)、表级(
mydb.mytable
);
常用权限包括:
SELECT
INSERT
UPDATE
DELETE
CREATE
DROP
等;
FLUSH PRIVILEGES
不是每次必需——GRANT/CREATE USER 后自动重载权限,但修改系统表(如直接改 mysql.user 表)后需要执行。

兼容旧版本或简化场景(MySQL 5.7 及更早)

老版本支持更简略写法,但不推荐用于新部署:

CREATE USER 'user1'@'localhost' IDENTIFIED BY 'pass123';
省略
IDENTIFIED WITH
时,默认使用当时默认插件(MySQL 5.7 是
mysql_native_password
,8.0+ 默认是
caching_sha2_password
);
若遇到客户端报错“Client does not support authentication protocol”,大概率是插件不匹配,应显式指定
mysql_native_password
避免使用空密码或简单密码,尤其在生产环境。

验证与管理常用命令

创建完成后,建议立即验证:

查看用户列表:
SELECT User, Host, plugin FROM mysql.user;
查看某用户权限:
SHOW GRANTS FOR 'username'@'host';
删除用户(谨慎):
DROP USER 'username'@'host';
修改密码(MySQL 8.0+):
ALTER USER 'username'@'host' IDENTIFIED WITH mysql_native_password BY 'newpass';

相关推荐