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 显式授权:
MVM mall 网上购物系统
0
采用 php+mysql 数据库方式运行的强大网上商店系统,执行效率高速度快,支持多语言,模板和代码分离,轻松创建属于自己的个性化用户界面 v3.5更新: 1).进一步静态化了活动商品. 2).提供了一些重要UFT-8转换文件 3).修复了除了网银在线支付其它支付显示错误的问题. 4).修改了LOGO广告管理,增加LOGO链接后主页LOGO路径错误的问题 5).修改了公告无法发布的问题,可能是打压
0 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';