docker 连接宿主Mysql操作
今天公司项目要配置docker,顺利在windows上装完了之后,发现连接不上本地的mysql,
一直报权限问题或者地址错误的问题
最后发现
1:地址按照下面这个ipv4来
2:要在宿主Mysql将localhost权限打开,命令如下
mysql -u root -pvmwaremysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
好了没了。
补充知识:Docker连接数据库容器无法本地访问,但可以远程访问的问题
前言
以前我用idea连接在阿里云服务器上的docker数据库时,用的都是服务器ip和端口号,后来感觉安全组开放端口号不太安全,想用localhost发现连接不上。
我以为只能用服务器ip不能用localhost,后来突然发现docker的每一个容器居然有自己的ip。
一、 进入容器
docker exec -it 8f00a625f3fb bash
二、查看ip
cat /etc/hosts
可以看到我的ip是172.18.0.2
三、修改链接地址
之后就好使了。
以上这篇docker 连接宿主Mysql操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Docker安装MySQL8.0的实现方法
环境:MacOS_Cetalina_10.15.1.Mysql8.0.18.Docker_2.0.0.3 1.docker仓库搜索mysql docker search mysql 2.docker仓库拉取mysql8.0 docker pull mysql:8.0 备注: docker pull mysql //默认拉取最新版本 3.查看本地仓库镜像是否下载成功 docker images mysql:8.0 4.安装运行mysql8.0容器 docker run -p 3307:3306 -
-
Docker容器访问宿主机网络的方法
最近部署一套系统,使用nginx作反向代理,其中nginx是使用docker方式运行: $ docker run -d --name nginx $PWD:/etc/nginx -p 80:80 -p 443:443 nginx:1.15 需要代理的API服务运行在宿主机的 1234 端口, nginx.conf 相关配置如下: server { ... location /api { proxy_pass http://localhost:1234 } ... } 结果访问的时候发现老是报 5
-
解决Docker之mysql容器数据库更改不生效的问题
用官方的mysql 镜像需要修改一些内容,比如配置文件的修改,DB数据文件的目录等,更改之后如果重新运行容器,改过的文件就无效了,新生成的容器不会有之前改变的内容 第一种是修改官方下载的镜像,修改之后 提交一个新的镜像文件 docker commit -m 等新生成的镜像信息, 第二种MYSQL的DB数据,容器关闭后 如果用 docker restart 重启同一容器,那么数据是正常的,如果重新docker run 容器那么数据就不会显示,因为每个容器都有一个文件地址 这就需要把数据文件挂载出来
-
docker 连接宿主Mysql操作
今天公司项目要配置docker,顺利在windows上装完了之后,发现连接不上本地的mysql, 一直报权限问题或者地址错误的问题 最后发现 1:地址按照下面这个ipv4来 2:要在宿主Mysql将localhost权限打开,命令如下 mysql -u root -pvmwaremysql>use mysql; mysql>update user set host = '%' where user = 'root'; mysql>select host, user from user;
-
docker容器访问宿主机的MySQL操作
背景: 有一个flask项目提供接口,使用docker容器构建并且运行,MySQL在宿主机运行,需要在容器中可以让flask连接上宿主机的mysql 使用ifconfig命令可以看到,有一个docker0和eth0,在docker容器中可以通过eth0的IP地址加上端口号(3306)这样就可以连接上宿主机的MySQL了:另外,nginx可以通过docker0的IP地址加上构建容器时指定的端口号进行访问容器. 补充:docker的mysql容器运行正常,但是宿主机却连不上数据库,解决方法来啦 do
-
docker连接spring boot和mysql容器方法介绍
在之前使用docker部署运行了Spring Boot的小例子,但是没有使用数据库.在这一篇中,介绍docker如何启动mysql容器,以及如何将Spring Boot容器与mysql容器连接起来运行. docker基本命令 首先熟悉一下在操作过程中常用的docker基本命令: docker images:列出所有docker镜像 docker ps:列出所有运行中的容器,-a参数可以列出所有容器,包括停止的 docker stop container_id:停止容器 docker start
-
连接docker里面的mysql失败解决方法
场景:在虚拟机的docker容器中安装latest版本的mysql之后,在宿主机中使用navicat连接虚拟机中的mysql出现下图报错: 2059 : Authentication plugin 'caching_sha2_password' cannot be loaded: 解决办法: 1.首先docker ps命令查看正在运行的容器,确保我们想要连接的mysql已经启动,如果没启动使用docker start命令启动(下图查看结果表示已经启动了一个mysql) 2.接着运行docker
-
Docker中优化Mysql运行内存的操作
使用docker stats查询运行内存,从这里可以看到,我的mysql一共用了400mb内存.经过下面操作可以优化为只占用100mb内存. 1.进入容器 docker exec -it mysql01 bash 2.安装vim 我们需要进入容器当中进行修改容器里面的配置文件,可能有的服务器是没有安装vim的,所以我们没有的需要安装的. apt-get update apt-get install vim 3.修改配置 docker进入mysql容器内,进入/etc/mysql/conf.d 目
-
MySQL操作并使用Python进行连接
目录 一.表格与键概念 二.创建资料库 三.创建表格 四.储存资料 五.限制约束 六.修改.删除资料 七.取得资料 八.创建公司资料库 九.取得公司资料 十.聚合函数 十一.万用子元 十二.联集 十三.连接 十四.子查询 十五.On delete 十六.Python连接MySQL 一.表格与键概念 主键:可唯一表示该资料(可以设置多个列表为主键) 设置外键进行表与表的相连,且外键必须是其他表的主键(外键也可以设置自己表格的主键) 二.创建资料库 CREATE DATABASE `sql_tuto
-
远程连接Docker上的Mysql失败的分析与解决方案
之前VMWare虚拟机CentOS7使用DHCP,导致只要重启操作系统,网卡IP地址就改变.于是把网卡修改为手工设定IP地址,结果导致远程连接mysql出现如下错误,花了很多时间还没有解决,最终偶然想到Docker被外部请求访问可能有中转行为才得到解决. ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.101.26' (10060) 附上网卡配置文件修改指令: cd /etc/sysconfig/system-scrip
-
Python实现MySQL操作的方法小结【安装,连接,增删改查等】
本文实例讲述了Python实现MySQL操作的方法.分享给大家供大家参考,具体如下: 1. 安装MySQLdb.从网站下载Mysql for python 的package 注意有32位和64位之分. 2. 安装完成之后从Python IDLE 导入MySQLdb >>>import MySQLdb 3. 新建一个数据库连接: >>>conn =MySQLdb.connect(host = '127.0.0.1',user= 'root',passwd='123456'
-
Docker容器中Mysql数据的导入/导出详解
前言 Mysql数据的导入导出我们都知道一个mysqldump命令就能够解决,但如果是运行在docker环境下的mysql呢? 解决办法其实还是用mysqldump命令,但是我们需要进入docker的mysql容器内去执行它,并且通过配置volumes让导出的数据文件可以拷贝到宿主机的磁盘上 所以操作步骤就可以分为: 配置docker的volumes 进入docker的mysql容器,导出数据文件 至于数据导入,太过简单,就不说了 先来看看mysqldump命令常见选项: --all-datab
-
详解docker下的Mysql镜像的使用方法
通常初学者学习docker时,不太清楚怎样拉取一个Mysql镜像并使用,今天这篇文章简单介绍一下使用流程. 一.预习一下用到的docker命令: 1.docker images 列出本地主机上的镜像. 2.docker pull 从Docker Hub中拉取或者更新指定镜像. 3.docker run -d 标识是让 docker 容器在后台运行. -p 标识通知 Docker 将容器内部使用的网络端口映射到我们使用的主机上. --name 定义一个容器的名字,如果在执行docker run时没
随机推荐
- 防木马随程序启动的一个方法
- python 迭代器和iter()函数详解及实例
- ASP.NET MVC5网站开发用户注册(四)
- swtich/if...else的替代语句
- Django实现自定义404,500页面教程
- 几种tab切换详解
- excellent!——ASCII Art(由目标图象生成ascii)
- Spring spel表达式使用方法示例
- C#实现的Windows剪贴板监视器功能实例【附demo源码下载】
- Android实用编程技巧代码总结
- 使用JavaScript脚本无法直接改变Asp.net中Checkbox控件的Enable属性的解决方法
- Android Studio手动配置Gradle的方法
- Android自定义View实现圆形切图效果
- Swift利用CoreData如何存储多种数据类的通讯录
- python将每个单词按空格分开并保存到文件中
- Vue 自定义标签的src属性不能使用相对路径的解决
- php判断目录存在的简单方法
- JavaScript实现一维数组转化为二维数组
- linux下禁止root远程登录和添加新用户的方法
- Ubuntu 18.04中截图工具shutter的编辑按钮不可用的解决办法