使用docker部署项目_mysql的使用

使用docker部署项目_mysql的使用在Docker下部署MySQL

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

在 【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

使用docker部署项目_mysql的使用
进入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: 只允许登录–其它什么也不允许做。

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

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/180352.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月19日 上午10:16
下一篇 2022年10月19日 上午10:16


相关推荐

  • docker 创建容器,端口映射(docker exec 进入容器)

    今天用docker的swarm搭建了一个集群,在启动主节点的swarm的时候出错了,报的错误是:/usr/bin/docker-current:Errorresponsefromdaemon:driverfailedprogrammingexternalconnectivityonendpointgoofy_bose(317173685c23c029fd5f28b88

    2022年4月16日
    79
  • 如何使用Docker Compose安装Drupal

    如何使用Docker Compose安装DrupalTheauthorselectedUnitedNationsFoundationtoreceiveadonationaspartoftheWriteforDOnationsprogram.作者选择联合国基金会作为WriteforDOnations计划的一部分接受捐赠。TheoriginalWordPressversionofthistut…

    2022年7月20日
    27
  • 如何在docker容器中运行docker命令

    如何在docker容器中运行docker命令欢迎关注个人微信公众号:devopscube前言​Docker作为目前炙手可热的容器运行环境,越来越多的应用到应用的部署当中。这种一次打包,随处运行的模式备受好评,也节约了很多环境配置的麻烦。很多软件运行时都提供了docker的镜像部署方式,我们可以看到常用的组件,开源的项目,都会提供docker镜像,或者用于打包镜像的dockerfile。所以Docker已然成为了软件…

    2022年5月17日
    164
  • pycharm 远程调试docker 中的Python脚本

    pycharm 远程调试docker 中的Python脚本一 远程服务器以及 docker 配置 ssh1 原理将 docker 中的 ssh 端口 22 映射到服务器中的某一个端口 例如 9999 本地使用 docker 的用户名和密码登录 9999 端口 也就登录了相应的 docker2ssh 配置步骤运行 docker 镜像 并且指定相应的端口映射关系 NV GPU 5nvidia dockerrun tinamemy tensorflow1 9 py3

    2026年3月27日
    2
  • 从零开始的Docker Desktop使用,Docker快速上手 ( ̄︶ ̄) Docker介绍和基础使用

    从零开始的Docker Desktop使用,Docker快速上手 ( ̄︶ ̄) Docker介绍和基础使用Docker 简介和安装本博客主要解决在 Windows 环境下 快速上手使用 Docker 的问题 主要会介绍在 Windows 系统下 DockerDeskto 的安装 Docker 基础命令 比如说下载镜像 启动镜像 使用镜像 关闭镜像 删除镜像 使用仓库 创建镜像等模块的使用 其他系统应该除了安装外其他操作都可以通用

    2026年3月26日
    3
  • linux使用docker_docker bash

    linux使用docker_docker bash安装命令sudoaptinstalldocker.io查看安装sudodocker–version添加用户到docker组sudogpasswd-a$USERdocker重启dockersudosystemctlrestartdocker查看状态sudodockerps-a查看镜像sudodockerimages创建容器dockerrun-it–nameubuntu1ubuntudockerrun-…

    2026年1月14日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号