docker mysql安装

#MySQL

下载镜像文件

docker pull mysql
也可以指定镜像版本
docker pull mysql:8.0.20
https://hub.docker.com/_/mysql

创建挂载目录

mkdir /data/mysql/data
mkdir /data/mysql/conf
sudo docker run --name mysql8.0 -p 13306:3306 \
 -v /data/mysql/data:/var/lib/mysql \
 -v /data/mysql/conf:/etc/mysql/conf.d \
 -e MYSQL_ROOT_PASSWORD=demo@home -d mysql:8.0 \
 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

进入docker内部

docker exec --it (imasge-name) bash 
mysql -u username - p "database"

database 也可以不指定数据库。

创建用户

create user 'username'@'%' identified by 'pwd@home';

授权

GRANT privileges ON databasename.tablename TO 'username'@'%' WITH GRANT OPTION;

或者授予全部权限

grant all on *.* to 'username'@'%';
ALTER USER 'username'@'%' IDENTIFIED BY 'pwd@home' PASSWORD EXPIRE NEVER; -- 修改加密规则
ALTER USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'pwd@home';
REVOKE Delete ON `your database`.* FROM `username`@`%`; -- 删除权限
FLUSH PRIVILEGES; -- 刷新权限
show grants; -- 查看当前用户(自己)权限
show grants for dba@localhost; -- 查看其他 MySQL 用户权限
-- 如果想让授权的用户,也可以将这些权限 grant 给其他用户,需要选项 “grant option“
grant select on testdb.* to dba@localhost with grant option;
  • all privileges:表示将所有权限授予给用户。也可指定具体的权限,如:SELECT、CREATE、DROP等。
  • on:表示这些权限对哪些数据库和表生效,格式:数据库名.表名,这里写“*”表示所有数据库,所有表。如果我要指定将权限应用到test库的user表中,可以这么写:test.user
  • to:将权限授予哪个用户。格式:”用户名”@”登录IP或域名”。%表示没有限制,在任何主机都可以登录。比如:”yangxin”@”192.168.0.%”,表示yangxin这个用户只能在192.168.0IP段登录
  • identified by:指定用户的登录密码
  • with grant option:表示允许用户将自己的权限授权给其它用户
  • 可以使用GRANT给用户添加权限,权限会自动叠加,不会覆盖之前授予的权限,比如你先给用户添加一个SELECT权限,后来又给用户添加了一个INSERT权限,那么该用户就同时拥有了SELECT和INSERT权限。

用户详情的权限列表请参考MySQL官网说明:http://dev.mysql.com/doc/refman/5.7/en/privileges-provided.html
mysql权限图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值