简明 Docker 安装 MySQL8
简明 Docker 安装 MySQL8 教程。
下载 mysql8 的 docker 镜像
1docker pull mysql:8.0
查看镜像拉取情况
1docker images
2
3REPOSITORY TAG IMAGE ID CREATED SIZE
4mysql 8.0 db2b37ec6181 9 days ago 545MB
5nginx latest f35646e83998 2 weeks ago 133MB
安装镜像到 docker
1docker run -d --name mysql8 -p 3306:3306 --restart=always -e MYSQL_ROOT_PASSWORD=此处填数据库密码 -v /root/mysql:/var/lib/mysql mysql:8.0
-d 为后台运行容器
-p 标识宿主机与容器端口映射(宿主:容器)
–restart 该参数可以指定一个重启策略,用来指定容器应该如何重启,或不应该重启。当容器启用 restart 策略时,将会在 docker ps 中显示 up 或者 restart 状态,也可以使用 docker events 命令查看 restart 策略是否生效。
-v volume(卷),宿主机与容器共享数据的一种方式,将宿主机 /root/mysql 与容器 /var/lib/mysql 映射起来。
查看安装情况
1# 执行该命令会显示已安装的所有容器
2docker ps -a
登录 mysql 容器
1docker exec -it mysql8 /bin/bash
其他
创建 mysql 用户
1create user 'username'@'IP' identified by '这里填密码';
2
3-- 单IP
4create user 'username'@'192.168.1.100' identified by '这里填密码';
5
6-- IP段
7create user 'username'@'192.168.1.%' identified by '这里填密码';
8
9-- 所有IP
10create user 'username'@'%' identified by '这里填密码';
用户授权
授权 MySQL 用户对数据库的增删改权限
1-- 查看权限
2show grants for 'username'@'IP'
3
4-- 授权
5grant 权限 on 数据库.表名 to "用户名"@'IP';
6
7-- 授权 test2020 用户仅对db2020.code表有查询、插入和更新的操作
8grant select ,insert,update on db2020.code to "test2020"@'%';
9
10-- 授权 test2020 用户对db2020下所有表有所有权限的操作
11grant all privileges on db2020.* to "test2020"@'%';
12
13-- 授权 test2020 用户对所有库所有表有所有权限的操作
14grant all privileges on *.* to "test2020"@'%';
15
16-- 取消授权
17revoke all privileges on *.* from 'test2020'@'%';
EOF