MySQL中创建用户需用CREATE USER语句并显式指定认证插件与强密码,再通过GRANT授权才能使用;默认密码策略严格,推荐mysql_native_password插件以保证兼容性。
在 MySQL 中创建用户,核心是使用 CREATE USER 语句,配合 GRANT(授权)才能让新用户真正可用。MySQL 8.0+ 默认启用密码强度策略,且推荐使用强密码和明确指定认证插件。
推荐写法,显式指定身份验证插件和密码:
CREATE USER 'username'@'host' IDENTIFIED WITH mysql_native_password BY 'strong_password';
'localhost'(仅本机)、'192.168.1.%'(某网段)、'%'(任意主机,注意安全风险);CREATE USER 只建账号,不赋予任何权限。需用 GRANT 显式授权:
GRANT SELECT, INSERT ON mydb.* TO 'username'@'host';
FLUSH PRIVILEGES;
限可细化到全局(*.*)、库级(mydb.*)、表级(mydb.mytable);SELECT、INSERT、UPDATE、DELETE、CREATE、DROP 等;FLUSH PRIVILEGES 不是每次必需——GRANT/CREATE USER 后自动重载权限,但修改系统表(如直接改 mysql.user 表)后需要执行。老版本支持更简略写法,但不推荐用于新部署:
CREATE USER 'user1'@'localhost' IDENTIFIED BY 'pass123';
IDENTIFIED WITH 时,默认使用当时默认插件(MySQL 5.7 是 mysql_native_password,8.0+ 默认是 caching_sha2_password);mysql_native_password;创建完成后,建议立即验证:
SELECT User, Host, plugin FROM mysql.user;
SHOW GRANTS FOR 'username'@'host';
DROP USER 'username'@'host';
ALTER USER 'username'@'host' IDENTIFIED WITH mysql_native_password BY 'newpass';