Docker系列:Docker安装MySQL8.0

1、获取镜像

docker pull mysql

2、数据挂载

docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=yky --name mysqlyky  mysql:8.0

在这里插入图片描述

在这里插入图片描述

这时候还不能远程连接:我们需要配置MySQL
在这里插入图片描述

3、进入容器

docker exec -it docker中运行数据库的名称 bash

4、配置MYSQL

配置用户:

 mysql -uroot -p
 use mysql;
 #配置MySQL支持远程连接
 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'MySQL的密码';
 #刷新数据库
 flush privileges;

配置权限:
在这里插入图片描述

5、测试

在这里插入图片描述

1)测试挂载

在这里插入图片描述
在这里插入图片描述

2)如何给用户授权。

mysql> grant 权限1,权限2, ... 权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令‘;

权限1,权限2,… 权限n 代表 select、insert、update、delete、create、drop、index、alter、grant、references、reload、shutdown、process、file 等14个权限。
当权限1,权限2,… 权限n 被 all privileges 或者 all 代替时,表示赋予用户全部权限。
当 数据库名称.表名称 被 . 代替时,表示赋予用户操作服务器上所有数据库所有表的权限。
用户地址可以是localhost,也可以是IP地址、机器名和域名。也可以用 ‘%‘ 表示从任何地址连接。
‘连接口令‘ 不能为空,否则创建失败。

举几个例子:
例一:

mysql> grant select,insert,update,delete,create,drop on db01.employee to vaiky@192.168.22.151 identified by ‘123456;

给来自192.168.22.151的用户vaiky分配可对数据库db01的employee表进行select,insert,update,delete,create,drop等操作的权限,并设定口令为123456。

例二:

mysql> grant all privileges on db01.* to vaiky@192.168.22.151 identified by ‘123456;

给来自192.168.22.151的用户vaiky分配可对数据库db01所有表进行所有操作的权限,并设定口令为123456。

例三:

mysql> grant all privileges on *.* to vaiky@192.168.22.151 identified by ‘123456;

给来自192.168.22.151的用户vaiky分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123456。

例四:

mysql> grant all privileges on *.* to vaiky@localhost identified by ‘123456;

给本机用户vaiky分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123456。

猜你喜欢

转载自blog.csdn.net/qq_44895397/article/details/107675597