外部连接mysql docker容器异常
为了方便,使用python测试连接mysql容器
脚本内容非常简单
#!/usr/bin/python3
import pymysql conn=pymysql.connect(host="localhost",user="root",port=,password="",database="mydb")
cursor=conn.cursor()
cursor.execute("select count(*) from mydb.t")
cursor.close()
conn.close()
执行上述脚本后,发生以下异常
Traceback (most recent call last):
File "./p.py", line , in <module>
conn=pymysql.connect(host="localhost",user="root",port=,password="",database="mydb")
File "/usr/local/lib64/python3.6/site-packages/pymysql/__init__.py", line , in Connect
return Connection(*args, **kwargs)
File "/usr/local/lib64/python3.6/site-packages/pymysql/connections.py", line , in __init__
self.connect()
File "/usr/local/lib64/python3.6/site-packages/pymysql/connections.py", line , in connect
self._get_server_information()
File "/usr/local/lib64/python3.6/site-packages/pymysql/connections.py", line , in _get_server_information
packet = self._read_packet()
File "/usr/local/lib64/python3.6/site-packages/pymysql/connections.py", line , in _read_packet
packet_header = self._read_bytes()
File "/usr/local/lib64/python3.6/site-packages/pymysql/connections.py", line , in _read_bytes
CR.CR_SERVER_LOST, "Lost connection to MySQL server during query")
pymysql.err.OperationalError: (, 'Lost connection to MySQL server during query')
从错误信息看,是不能够正常连接到OMC,刚开始怀疑是pymysql.connect方法中传递的参数不正确,但无论怎么修改,始终出现2013的异常,后来查看mysql配置文件,发现存在一条配置
bind_address=127.0.0.1
改参数限制了mysql不能被远程访问,所以在容器外部没法访问到容器内部的mysql,造成2013异常,注释掉改配置,重启mysql docker容器,访问正常
另外如果将改配置对应的ip地址改为宿主机地址,还会出现如下异常
Traceback (most recent call last):
File "./p.py", line , in <module>
conn=pymysql.connect(host="localhost",user="root",port=,password="",database="mydb")
File "/usr/local/lib64/python3.6/site-packages/pymysql/__init__.py", line , in Connect
return Connection(*args, **kwargs)
File "/usr/local/lib64/python3.6/site-packages/pymysql/connections.py", line , in __init__
self.connect()
File "/usr/local/lib64/python3.6/site-packages/pymysql/connections.py", line , in connect
raise exc
pymysql.err.OperationalError: (, "Can't connect to MySQL server on 'localhost' ([Errno 111] Connection refused)")
且mysql未正常启动,错误日志中有如下信息
--15T02::.769286Z [Warning] [MY-] [Server] CA certificate ca.pem is self signed.
--15T02::.791952Z [ERROR] [MY-] [Server] Can't start server: Bind on TCP/IP port: Cannot assign requested address
--15T02::.791960Z [ERROR] [MY-] [Server] Do you already have another mysqld server running on port: ?
--15T02::.792191Z [ERROR] [MY-] [Server] Aborting
--15T02::.855205Z [System] [MY-] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.) MySQL Community Server - GPL.
外部连接mysql docker容器异常的更多相关文章
- docker学习(5) 在mac中创建mysql docker容器
github上有一个专门的docker-libary项目,里面有各种各样常用的docker镜像,可以做为学习的示例,今天研究下其中mysql镜像的用法,国内镜像daocloud.io也能找到mysql ...
- ruby使用DBI连接MySQL数据库发生异常:in `error': Can't connect to MySQL server on 'localhost' (10061) (DBI::DatabaseError)
Ruby使用DBI连接MySQL数据库一般为: require "dbi" dbh = DBI.connect("dbi:Mysql:test:localhost&quo ...
- 处理asp.net core连接mysql的一个异常Sequence contains more than one matching element
晚上在那里调程序,把mysql.data组件的nuget包进行了更新,前几天好好的程序,开始抛错,跟踪断点发现以下的异常: Unable to connect to any of the specif ...
- MySQL Docker容器实例创建并进入MySQL命令行
首先需要明白的一点是: docker镜像是一个模版,docker容器是一个实例,它可以被启动与关闭. 我们需要先有MySQL的docker镜像,使用命令: docker pull mysql 拉取最新 ...
- docker 容器的mysql主从复制
一. 1.首先拉取docker镜像,我们这里使用5.7版本的mysql: docker pull mysql:5.7 2.分别启动主从两个容器: docker run -p 3339:3306 - ...
- Docker 容器的跨主机连接
使用网桥实现跨主枳容器连接 不推荐 使用OpenvSwitch实现跨主机容器连接 OpenvSwitch: OpenvSwitch是一个高质量的.多层虚拟交换枳,使用开源Apache2.0许可协议,由 ...
- Centos故障01:Docker容器丢失
问题 一测试环境,配置及应用如下: [Centos ~]# rpm -q centos-release centos-release-7-6.1810.2.el7.centos.x86_64 应用: ...
- docker容器的学习笔记
目录 Docker入门学习笔记(一) 1. 什么是Docker? 2. Docke的目标 3. Docker通常应用场景 4. Docker的基本组成 补:Docker容器相关技术简介 安装Docke ...
- Docker容器基础入门认知-网络篇
这篇文章中,会从 docker 中的单机中的 netns 到 veth,再到单机多个容器之间的 bridge 网络交互,最后到跨主机容器之间的 nat 和 vxlan 通信过程,让大家对 docker ...
随机推荐
- 什么是DDOS
什么是DDOS?分布式拒绝服务攻击(Distributed Denial of Service).百度的解释有一个形象的例子我认为比较好理解,照搬如下: 一群恶霸试图让对面那家有着竞争关系的商铺无 ...
- MySQL Windows安装连接
1.首先进入mysql的安装目录下的bin目录,例如我的是[C:\WINDOWS\System32\cmd.exe] 2.接着输入cmd,回车 3.在命令行中输入命令[mysql -hlo ...
- 【Zookeeper】 在Java中的操作
一.基本功能演示 1.1 Maven依赖信息 1.2 代码演示 方法说明 1.3 创建Zookeeper节点信息 二.Watcher 2.1 什么是Watcher接口 2.2 Watcher代码 一. ...
- apk签名文件生成
一.生成签名文件 命令: keytool -genkey -v -keystore 签名文件名称.keystore -alias 签名文件别名 -keyalg RSA -keysize 2048 -v ...
- 使用RevitNet操作多个版本的Revit
在Revit二次开发中,如果只是简单的从模型中提取数据或不需要界面对Revit进行修改,我们一般使用RevitNet. 如果对RevitNet不熟悉的,请参考:RevitAPI进阶之独立进程内读取.写 ...
- Gradle 的使用
gradle 工具类似于maven工具,但是gradle 减少了maven中的那种使用xml 中大量的配置文件来下载依赖的jar包.而gradle大大简化了,能够很快速的添加依赖.具体关于gradle ...
- phpstudy修改端口及网站根目录和访问 localhost 显示目录文件夹
一.其它选项菜单=>phpStudy设置=>端口常规设置(勾选允许目录列表): 二. Apache http端口:80 网站目录:D:\phpStudy\PHPTutorial\WWW 默 ...
- Python+request 分模块存放接口,多接口共用参数URL、headers的抽离,添加日志打印等《三》
主要介绍内容如下: 1.分模块存放接口 2.多接口共用参数URL.headers的抽离为配置文件 3.添加日志打印 4.一个py文件运行所有所测的接口 如上介绍内容的作用: 1.分模块存放接口:方便多 ...
- java判断文件是否为图片
/** * 判断文件是否为图片<br> * <br> * @param pInput 文件名<br> * @param pImgeFlag 判断具体文件类型< ...
- Spring MVC + freemarker实现半自动静态化
这里对freemarker的代码进行了修改,效果:1,请求.do的URL时直接生成对应的.htm文件,并将请求转发到该htm文件2,自由控制某个页面是否需要静态化原理:对org.springframe ...