mysql创建用户推荐使用CREATE USER语句,再用GRANT授权;语法为CREATE USER ‘user’@’host’ IDENTIFIED BY ‘pwd’,授权用GRANT PRIV ON db.tbl TO ‘user’@’host’,最后FLUSH PRIVILEGES生效。

MySQL 创建用户主要通过 CREATE USER 语句完成,配合 GRANT 授予对应权限。从 MySQL 5.7 开始推荐使用该方式,安全且语义清晰。
使用 CREATE USER 创建新用户
基本语法如下(以用户名 app_user、密码 secure123、仅允许本地登录为例):
CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'secure123';
-
'app_user'@'localhost'表示用户只能从本机连接;若需远程访问,把localhost换成'%'(任意主机)或具体 IP,如'192.168.1.100' - 密码必须用单引号包裹,且建议使用强密码
- 执行后用户仅存在,但无任何数据库操作权限
用 GRANT 授权给新用户
创建用户后需显式授权,例如赋予对数据库 myapp_db 的全部权限:
GRANT ALL PRIVILEGES ON myapp_db.* TO 'app_user'@'localhost';
DESTOON B2B网站管理系统是一套完善的B2B(电子商务)行业门户解决方案。系统基于PHP+MySQL开发,采用B/S架构,模板与程序分离,源码开放。模型化的开发思路,可扩展或删除任何功能;创新的缓存技术与数据库设计,可负载千万级别数据容量及访问。
0 -
ALL PRIVILEGES可替换为更具体的权限,如select, INSERT, UPDATE -
myapp_db.*表示该库下所有表;也可指定表,如myapp_db.users - 授权后必须执行
FLUSH PRIVILEGES;刷新权限表(部分高版本 MySQL 在GRANT后自动刷新,但显式执行更稳妥)
一步创建并授权(兼容旧习惯)
MySQL 5.7 之前常用 GRANT 直接创建用户,现在仍支持:
GRANT SELECT, INSERT ON myapp_db.orders TO 'report_user'@'%' IDENTIFIED BY 'readonly2024';
- 该语句会自动创建用户(如果不存在),并直接授权
- 注意:这种方式在严格 SQL 模式或某些部署策略中可能被禁用,建议优先用
CREATE USER + GRANT分步操作 - 同样需要
FLUSH PRIVILEGES;确保生效
验证与后续管理
创建完成后可登录验证:
mysql -u app_user -p -h 127.0.0.1
- 查看用户列表:
SELECT User, Host FROM mysql.user; - 查看某用户权限:
SHOW GRANTS for 'app_user'@'localhost'; - 修改密码:
ALTER USER 'app_user'@'localhost' IDENTIFIED BY 'newpass123'; - 删除用户:
DROP USER 'app_user'@'localhost';