为了方便,使用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容器异常的更多相关文章

  1. docker学习(5) 在mac中创建mysql docker容器

    github上有一个专门的docker-libary项目,里面有各种各样常用的docker镜像,可以做为学习的示例,今天研究下其中mysql镜像的用法,国内镜像daocloud.io也能找到mysql ...

  2. 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 ...

  3. 处理asp.net core连接mysql的一个异常Sequence contains more than one matching element

    晚上在那里调程序,把mysql.data组件的nuget包进行了更新,前几天好好的程序,开始抛错,跟踪断点发现以下的异常: Unable to connect to any of the specif ...

  4. MySQL Docker容器实例创建并进入MySQL命令行

    首先需要明白的一点是: docker镜像是一个模版,docker容器是一个实例,它可以被启动与关闭. 我们需要先有MySQL的docker镜像,使用命令: docker pull mysql 拉取最新 ...

  5. docker 容器的mysql主从复制

    一. 1.首先拉取docker镜像,我们这里使用5.7版本的mysql:   docker pull mysql:5.7 2.分别启动主从两个容器: docker run -p 3339:3306 - ...

  6. Docker 容器的跨主机连接

    使用网桥实现跨主枳容器连接 不推荐 使用OpenvSwitch实现跨主机容器连接 OpenvSwitch: OpenvSwitch是一个高质量的.多层虚拟交换枳,使用开源Apache2.0许可协议,由 ...

  7. Centos故障01:Docker容器丢失

    问题 一测试环境,配置及应用如下: [Centos ~]# rpm -q centos-release centos-release-7-6.1810.2.el7.centos.x86_64 应用: ...

  8. docker容器的学习笔记

    目录 Docker入门学习笔记(一) 1. 什么是Docker? 2. Docke的目标 3. Docker通常应用场景 4. Docker的基本组成 补:Docker容器相关技术简介 安装Docke ...

  9. Docker容器基础入门认知-网络篇

    这篇文章中,会从 docker 中的单机中的 netns 到 veth,再到单机多个容器之间的 bridge 网络交互,最后到跨主机容器之间的 nat 和 vxlan 通信过程,让大家对 docker ...

随机推荐

  1. K2 BPM_K2受邀出席QAD 2019年亚太区用户大会_全业务流程管理专家

    6月12-13日,K2受邀参加了以“云聚创新,智造未来”为主题的QAD 2019年亚太区用户大会.会议上K2同与会嘉宾们共商制造业数字化转型,就如何用流程赋能企业实现智能制造进行了精彩分享. 近期发布 ...

  2. openssh升级

    转载:(感谢作者) centos7 升级openssh到openssh-8.0p1版本 https://www.cnblogs.com/nmap/p/10779658.html centos 7 op ...

  3. Eclipse中如何创建一个完整的Maven-Web项目

    Maven Web项目搭建 1.首先确保本地开发环境搭建完毕(jdk,maven). 2.打开Eclipse,新建Maven项目.选择Maven Project选项. 3.将第一项:Create a ...

  4. windows使用zip包安装mysql8.0.12

    1.前言 在windows下有两种安装mysql的方式,一种是msi的方式,一种是使用zip包的安装方式.通常都是用msi的方式,毕竟不需要敲命令,只用图形界面就可以完成安装.zip包的安装方式也很简 ...

  5. Vue 日期下拉框

    <!-- html --> <template> <!-- 控件样式 --> <div class="select"> <di ...

  6. java与.net_20190726

    特性与注解 方法首字母 Java没有ref和out关键字 Java的main方法与C#的Main方法不一样: Java的io类和C#不一样. java的jsp和aspx还是很类似的. Java的ser ...

  7. hi 北京

    一 . 感慨 借着参加北京物联网展会的这次机会,提前找老师批了大概两周的假期.当然也借着这次机会,尝试了第一次坐飞机.第一次来北京.心里也有点小激动,在路上甚至会想,我是不是要重新规划一下我的人生了呢 ...

  8. 大数据之路week05--day01(JDBC 初识)

    一.概述 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写 ...

  9. gitlab自动备份脚本auto_backup_to_remote

    !/bin/bash gitlab 服务器备份路径 LocalBackDir=/var/opt/gitlab/backups 远程备份服务器 gitlab备份文件存放路径 RemoteBackDir= ...

  10. vulkan的subpass

    最近在写 unity上 vulkan开subpass 似乎pc上subpass 的input attachement hlslcc_fbinput_0绑不上的 在手机上能绑上 说明subpass这个功 ...