MySQL中创建用户需用CREATE USER语句并显式指定认证插件与强密码,再通过GRANT授权才能使用;默认密码策略严格,推荐mysql_native_password插件以保证兼容性。

在 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 显式授权:
需要创建、读取、编辑或处理 Word 文档(.docx / .dotx)时使用。触发词:'Word'、'word 文档'、'.docx'、'生成报告'、'制作合同/简历/方案/说明书'、'提取 word 内容'、'在文档里查找替换'、'给文档加页眉页脚/目录/表格'。也用于把任意内容排版成一份正式的 Word 文件。不要用它处理 PDF、Excel 或无关编程任务。中文创作场景尤其适合:小说大纲稿、投稿文档、合同、简历、工作总结。
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';

















