当前位置: 代码网 > 服务器>服务器>云虚拟主机 > 使用Docker部署MySQL的实现步骤

使用Docker部署MySQL的实现步骤

2024年05月22日 云虚拟主机 我要评论
在 【docker】 下部署,使用命令行进行拉取。1、拉取mysql最新版本mysql:docker pull mysql:latest拉取5.7版本mysql:docker pull mysql:5

在 【docker】 下部署,使用命令行进行拉取。

1、拉取mysql

最新版本mysql:

docker pull mysql:latest

拉取5.7版本mysql:

docker pull mysql:5.7

在这里插入图片描述

2、启动容器镜像

docker run -p 13306:3306 --name my-mysql -v $pwd/conf:/etc/mysql -v $pwd/data:/var/lib/mysql -e mysql_root_password=dl123456 -d mysql:5.7

【说明】

  • -p 13306:3306                      将容器的 3306 端口映射到主机的 3306 端口
  • --name my-mysql                     启动后容器名为 my-mysql  
  • -v $pwd/conf:/etc/mysql          将主机当前目录下的 conf/ 挂载到容器的 /etc/mysql       (conf目录为mysql的配置文件,不挂载也没问题)
  • -v $pwd/logs:/logs          将主机当前目录下的 logs 目录挂载到容器的 /logs           (logs目录为mysql的日志目录,不挂载也没影响)
  • -v $pwd/data:/var/lib/mysql     将主机当前目录下的data目录挂载到容器的 /var/lib/mysql (data目录为mysql配置的数据文件存放路径,这个还是建议挂载,是存储数据的,容器down掉,还能再次挂载数据。)
  • -e mysql_root_password=dl123456   初始化 root 用户的密码

3、登录容器

docker exec -it my-mysql bash
ls

进入mysql容器

使用的 docker exec 命令,-it是参数,bash表示创建一个交互界面

退出容器

方法一:如果要正常退出不关闭容器,请按ctrl+p+q进行退出容器

方法二:如果使用exit退出,那么在退出之后会关闭容器

4、登录mysql

mysql -uroot -p --default-character-set=utf8

输入密码登陆即可

在这里插入图片描述

查看数据库

mysql> show databases;

在这里插入图片描述

设置能远程登录mysql

mysql> use mysql

输出

reading table information for completion of table and column names
you can turn off this feature to get a quicker startup with -a

查看用户

mysql> select host,user from user;

在这里插入图片描述

设置root用户在任何地方进行远程登录,并具有所有库任何操作权限。
(暴露的攻击面太大)。

 给用于授予权限
grant all privileges on *.*  to 'root'@'%' ; 

修改用户的密码和加密方式

alter user 'root'@'%' identified with mysql_native_password by '密码';

刷新

flush privileges;

下面是网上查到最多授权的写法,可能会报错或者无法连接

允许root用户在任何地方进行远程登录

mysql> alter user 'root'@'%' identified with mysql_native_password by 'dl123456';

允许root用户在任何地方进行远程登录,并具有所有库任何操作权限

mysql> grant all privileges on *.* to 'root'@'%' identified by 'dl123456' with grant option;

刷新

flush privileges;
flush privileges;

如果现在还没有连接成功建议重启下docker容器:

docker restart [container id]

退出mysql数据库:

exit

【说明】
mysql 8.0版本以后 默认使用 caching_sha2_password 身份验证机制 —— 从原来的 mysql_native_password 更改为 caching_sha2_password。

从 5.7 升级 8.0 版本的不会改变现有用户的身份验证方法,但新用户会默认使用新的 caching_sha2_password 。

客户端不支持新的加密方式。

更改加密方式

update user set password_expired = "y"where user="root";
alter user'root'@'%' identified with mysql_native_password by 'dl123456';

远程连接

允许root用户在一个特定的ip进行远程登录,并具有所有库任何操作权限
在本机先使用root用户登录mysql进行授权操作:

mysql -u root -p"youpassword" 
grant all privileges on *.* to root@"172.16.16.152" identified by "youpassword" with grant option;

重载授权表: flush privileges; 退出mysql数据库: exit

允许root用户在一个特定的ip进行远程登录,并具有所有库特定操作权限,
在本机先使用root用户登录mysql 进行授权操作:

mysql -u root -p"youpassword" 
grant select,insert,update,delete on *.* to root@"172.16.16.152" identified by "youpassword";

重载授权表: flush privileges; 退出mysql数据库: exit

删除用户授权,需要使用revoke命令,

先在本机登录mysql进行授权操作:

mysql -u root -p"youpassword"
grant select,insert,update,delete on test-db to test-user@"172.16.16.152" identified by "youpassword"; 
 revoke privileges on 数据库[.表名] from user-name; 
 revoke all on test-db from test-user;

【注】该操作只是清除了用户对于test-db的相关授权权限,但是这个“test-user”这个用户还是存在。

最后从用户表内清除用户:

delete from user where user="test-user"; 

重载授权表: flush privileges; 退出mysql数据库: exit

mysql权限详细分类:

全局管理权限

  • file: 在mysql服务器上读写文件。
  • process: 显示或杀死属于其它用户的服务线程。
  • reload: 重载访问控制表,刷新日志等。
  • shutdown: 关闭mysql服务。

数据库/数据表/数据列权限

  • alter: 修改已存在的数据表(例如增加/删除列)和索引。
  • create: 建立新的数据库或数据表。
  • delete: 删除表的记录。
  • drop: 删除数据表或数据库。
  • index: 建立或删除索引。
  • insert: 增加表的记录。
  • select: 显示/搜索表的记录。
  • update: 修改表中已存在的记录。

特别的权限

  • all: 允许做任何事(和root一样)。
  • usage: 只允许登录–其它什么也不允许做。

 到此这篇关于使用docker部署mysql的实现步骤的文章就介绍到这了,更多相关docker部署mysql内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

  • docker 搭建 vulhub 靶场环境的详细过程

    写在前面在学习网络安全的过程中,搭建漏洞靶场有着至关重要的作用。复现各种漏洞,能更好的理解漏洞产生的原因,提高自己的学习能力。vulhub靶场环境利用简单,十分推荐大家使用。一、v…

    2024年05月22日 服务器
  • 详解K8S apiVersion对照表

    详解K8S apiVersion对照表

    k8s更新迭代比较快,apiversion也在不断变化中,每个版本的对应的apiversion略有不同,推荐大家去看官方文档:https://kubernete... [阅读全文]
  • k8s证书有效期时间修改的方法详解

    修改后的集群时间,10年的时间,够集群平稳运行一段时间了。刚部署好k8s的master集群时,查看证书有效期,时间是1年。一年,说长不长,说短不短。查看目前在运行的应用,都已经运行…

    2024年05月22日 服务器
  • K8S 中 kubectl 命令详解

    一、资源管理办法1.1 陈述式资源管理方法kubernetes集群管理集群资源的唯一入口是通过相应的方法调用apiserver的接口kubectl 是官方的cli命令行工具,用于与…

    2024年05月22日 服务器
  • 容器管理工具 Rancher的安装与使用

    本章学习目标:掌握容器管理工具 rancher 的安装与使用;掌握基于 rancher 的应用部署、扩容缩容操作。一、容器管理工具 rancher 介绍rancher 是一个开源的…

    2024年05月22日 服务器
  • VMware安装Rocky Linux服务器系统并执行优化的详细过程

    镜像下载、域名解析、时间同步请点击 阿里云开源镜像站前言由于centos7 2024年即将停止维护,我准备将服务器重心从centos改为rocky linux,这篇文章分享一下ro…

    2024年05月22日 服务器

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com