首先创建用户并授权,1. 用root登录MySQL;2. 执行CREATE USER 'devuser'@'localhost' IDENTIFIED BY 'DevPass123!'; 3. 使用GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'devuser'@'localhost'; 授予权限;4. 运行FLUSH PRIVILEGES; 刷新权限;5. 通过SHOW GRANTS FOR 'devuser'@'localhost'; 验证权限;6. 如需远程访问,配置bind-address并开放防火墙;7. 最后测试新用户登录及操作权限。
在MySQL中添加新用户并授权需要通过SQL命令操作,通常使用CREATE USER创建用户,再用GRANT语句分配权限。以下是详细步骤。
1. 登录MySQL管理账户
打开终端或命令行工具,使用具有管理员权限的账户(如root)登录MySQL:
mysql -u root -p输入密码后进入MySQL命令行界面。
2. 创建新用户
使用CREATE USER语句创建用户,语法如下:
USER '用户名'@'主机' IDENTIFIED BY '密码';
示例:创建一个名为devuser的用户,允许从本地连接,密码为DevPass123!:
若允许该用户从任意IP连接,可将主机设为'%':
3. 授予权限
使用GRANT语句为用户分配权限。常见权限包括SELECT、INSERT、UPDATE、DELETE、ALL PRIVILEGES等。
语法:
GRANT 权限列表 ON 数据库名.表名 TO '用户名'@'主机';示例:
- 授予
devuser对mydb数据库所有表的读写权限:
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'devuser'@'localhost'; - 授予全部权限(谨慎使用): GRANT ALL PRIVILEGES ON mydb.* TO 'devuser'@'localhost';
- 只授予查询权限: GRANT SELECT ON mydb.users TO 'devuser'@'localhost';
4. 刷新权限
执行以下命令使权限立即生效:
FLUSH PRIVILEGES;5. 验证权限设置
可通过以下命令查看用户权限:
SHOW GRANTS FOR 'devuser'@'localhost';确认输出中包含已授予的权限。
6. 可选:设置远程访问(需配置MySQL服务)
如果用户从远程连接(如'devuser'@'%'),需确保:
- MySQL监听公网IP(检查
my.cnf或mysqld.cnf中的bind-address,可设为0.0.0.0或注释掉) - 防火墙开放3306端口
- 操作系统防火墙或云服务器安全组允许访问
7. 测试新用户登录
退出当前会话,使用新用户登录测试:
mysql -u devuser -p输入密码后,尝试执行相关操作验证权限是否正确。
基本上就这些。注意权限粒度要合理,避免随意授予ALL PRIVILEGES,尤其是生产环境。定期审查用户和权限也是一种良好习惯。








