MySQL8.0 创建用户及授权
封面图
•
2025-12-31
•
MySQL
253
0
0
0
在 MySQL 8.0 中创建用户并授权,通常涉及以下几个步骤: --- ## 一、登录 MySQL 使用 root 用户或其他有权限的用户登录 MySQL: ```bash mysql -u root -p ``` 输入密码后进入 MySQL 命令行。 --- ## 二、创建用户 ### 1. 创建用户(不指定主机) ```sql CREATE USER 'username'@'%' IDENTIFIED BY 'password'; ``` - `'username'`:用户名 - `'%'`:表示允许从任何主机连接。如果只允许本地访问,可以写成 `'localhost'` - `'password'`:用户的密码 > 注意:MySQL 8.0 默认使用 `caching_sha2_password` 认证插件,与之前版本不同。 --- ### 2. 创建用户(指定主机) ```sql CREATE USER 'username'@'192.168.1.100' IDENTIFIED BY 'password'; ``` 这表示该用户只能从 `192.168.1.100` 这个 IP 地址连接。 --- ## 三、授权 ### 1. 授予用户所有权限(全局) ```sql GRANT ALL PRIVILEGES ON *.* TO 'username'@'%'; ``` - `*.*` 表示所有数据库和表 - `ALL PRIVILEGES` 表示授予所有权限(包括 SELECT, INSERT, UPDATE, DELETE 等) ### 2. 授予用户特定数据库的权限 ```sql GRANT SELECT, INSERT, UPDATE ON dbname.* TO 'username'@'%'; ``` - `dbname` 是你要授权的数据库名 - `SELECT, INSERT, UPDATE` 是具体权限 --- ### 3. 刷新权限(可选) ```sql FLUSH PRIVILEGES; ``` 虽然大多数情况下不需要这个命令,但如果你修改了权限相关表(如 `mysql.user`),建议执行此命令使更改生效。 --- ## 四、查看用户权限 ```sql SHOW GRANTS FOR 'username'@'%'; ``` 这将显示该用户的所有权限信息。 --- ## 五、删除用户 ```sql DROP USER 'username'@'%'; ``` --- ## 六、示例:创建一个只读用户 ```sql CREATE USER 'readonly_user'@'%' IDENTIFIED BY 'readpass'; GRANT SELECT ON *.* TO 'readonly_user'@'%'; FLUSH PRIVILEGES; ``` --- ## 七、常见问题 ### 1. 登录时提示“Access denied” - 检查用户名和密码是否正确 - 检查用户是否被允许从当前 IP 连接(例如 `%` 或 `localhost`) - 检查 MySQL 的 `bind-address` 配置(如果使用远程连接) ### 2. 权限没有生效 - 确保执行了 `FLUSH PRIVILEGES;` - 确保你是在正确的数据库中执行授权语句 --- ## 附:MySQL 8.0 权限系统变化 - MySQL 8.0 引入了更细粒度的权限控制。 - 新增了 `ROLE` 概念,可以将多个权限组合为一个角色,再分配给用户。 --- 如果你需要我帮你生成具体的 SQL 语句,请告诉我用户名、密码、IP 和需要的权限范围。
上一篇:
git 账号和密码管理
下一篇:
Git 本地仓库和裸仓库
标题录入,一次不能超过6条
留言
评论