Docker MySql8 创建、删除、授权用户
1、登录MySql8
1 2 3 4 5 | # 登录数据库 docker exec -it mysql8 mysql -uroot -proot123456 # 切换数据库实例 use mysql; |
2、用户操作
2.1、查看用户
1 | select host, user, authentication_string, plugin from user; |
2.2、创建本地用户
1 2 3 4 5 6 7 8 | # 创建一个用户名为admin,密码为 admin123456 的本地用户。 create user 'admin' @ 'localhost' identified by 'admin123456' ; # 使admin用户获得所有权限 grant all privileges on *.* to 'admin' @ 'localhost' ; # 刷新授权才会生效 flush privileges; |
2.3、创建外网可访问用户
1 2 3 4 5 6 7 8 | # 创建一个用户名为admin,密码为 admin123456 的本地用户 create user 'admin' @ '%' identified by 'admin123456' ; # 使admin用户获得所有权限 grant all privileges on *.* to 'admin' @ '%' ; # 刷新授权才会生效 flush privileges; |
2.4、修改用户
1 2 3 4 5 6 7 8 9 10 11 | # 查询用户信息 select * from user Where User= 'admin' and Host= 'localhost' ; # 方式一:将用户名 admin 更新为 admin_newm rename user 'admin' @ 'localhost' to 'admin_new' @ 'localhost' ; # 方式二:将用户名 admin 更新为 admin_newm update user set User= 'admin_new' where User= 'admin' and Host= 'localhost' ; # 刷新授权才会生效 flush privileges; |
2.5、删除用户
1 2 3 4 5 6 7 8 | # 方式一:删除指定用户 drop user 'admin' @ 'localhost' ; # 方式二:删除指定用户 delete from user Where User= 'admin' and Host= 'localhost' ; # 刷新授权才会生效 flush privileges; |
3、操作用户权限
3.1、查看用户权限
1 | show grants for 'admin' @ 'localhost' ; |
3.2、修改用户权限
1 2 3 4 5 6 7 8 9 10 11 | # 使admin用户获得所有权限。 grant all privileges on *.* to 'admin' @ 'localhost' ; # 使admin用户获得所有数据库中所有表的(*.*)select、insert、update、delete权限 grant select ,insert,update,delete on *.* to 'admin' @ 'localhost' ; # 如果只想让该用户访问某一个数据库写成:testdb.* 即可 grant all privileges on testdb.* to 'admin' @ 'localhost' ; # 刷新授权才会生效 flush privileges; |
3.3、删除用户权限
1 2 3 4 5 6 7 8 | # 删除amdin用户在本地访问mysql时的所有权限 revoke all privileges on *.* from 'admin' @ 'localhost' ; # 删除amdin用户在本地访问mysql时的insert和update权限 revoke insert,update on testdb.* from 'admin' @ 'localhost' ; # 刷新授权才会生效 flush privileges; |
4、修改密码
1 2 3 4 5 6 7 8 9 10 11 12 | # 查询用户信息 select host, user, authentication_string, plugin from user; # 需要先将authentication_string置空才能真正修改密码,否则会报错:ERROR 1396 (HY000) update user set authentication_string= '' where user= 'admin' and Host= 'localhost' ; # 刷新授权才会生效 flush privileges; # 修改admin用户的密码 ALTER USER 'admin' @ 'localhost' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY 'admin123456' ; # 刷新授权才会生效 flush privileges; |
5、%与localhost关系
版本 | 用户中的%是否包括localhost |
---|---|
MySQL8.0 | 包括 |
MySQL5.7 | 包括 |
MySQL5.6 | 不包括 |
MySQL5.1 | 不包括 |
MariaDB 10.3 | 不包括 |
分类:
Mysql
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现