python连接mysql异常的简单介绍

本文目录一览:

MySQL-python连接MySQL数据库问题,总是抛异常。

不要刚开始学多线程编程就这样玩。connection 和 cursor 都不是线程安全的。

如果测试环境用多个线程,每个线程要在线程里面获取自己的 connection,然后从这个connection 获取 cursor.

如果生产环境用多个线程,建议使用线程安全的连接池。

python连接mysql数据库出错,已经尝试了网上的几种解决方法

这里的意思是:数据库连不上啊。

可能是网络问题,可能是防火墙问题,可能是3306端口没开。你先排除这些问题吧。用一些mysql工具连接测试看,比如SQLyog 测试。

python 连接mysql 时,connect 出现错误,怎么解决

# -*- coding: utf-8 -*-

import MySQLdb

from MySQLdb.cursors import DictCursor

def catch_2006(func):

    “””

    To catch MySQL Error 2006 (‘Server has gone away’)

    “””

    def _(self, *args, **kwargs):

        try:

            return func(self, *args, **kwargs)

        except MySQLdb.Error, e:

            print __file__, e

            if e.args[0] == 2006 or e.args[0] == 0:

                self.reboot_conn()

                return func(self, *args, **kwargs)

                # todo

                # How to deal if not the code

    return _

class DB(object):

    def __init__(self, host, port, user,

                 passwd, db, use_unicode=True, charset=’utf8′):

        self.host = host

        self.port = port

        self.user = user

        self.passwd = passwd

        self.db = db

        self.use_unicode = use_unicode

        self.charset = charset

    @property

    def conn(self):

        if not hasattr(self, ‘__conn’):

            self.__conn = MySQLdb.connect(

                host=self.host,

                port=self.port,

                user=self.user,

                passwd=self.passwd,

                db=self.db,

                use_unicode=self.use_unicode,

                charset=self.charset

            )

        return self.__conn

    def reboot_conn(self):

        if hasattr(self, ‘__conn’):

            try:

                self.__conn.close()

                del self.__conn

            except:

                pass

    @catch_2006

    def query(self, sql, args=None):

        print sql

        cursor = self.conn.cursor()

        cursor.execute(sql, args)

        cursor.execute(‘commit’)

        cursor.close()

    @catch_2006

    def select(self, sql, args=None, is_dict=False, is_one=False):

        # print sql, args

        if is_dict:

            cursor = self.conn.cursor(cursorclass=DictCursor)

        else:

            cursor = self.conn.cursor()

        cursor.execute(sql, args)

        if is_one:

            resultset = cursor.fetchone()[0]

        else:

            resultset = cursor.fetchall()

        cursor.close()

        return resultset

这个是我以前项目中使用python链接mysql的例子,你可以参考一下。

如果解决了您的问题请采纳!

如果未解决请继续追问!

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/245928.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 13:12
下一篇 2024-12-12 13:12

相关推荐

  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • Python列表中负数的个数

    Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。 一、使用循环遍历…

    编程 2025-04-29
  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • 如何修改mysql的端口号

    本文将介绍如何修改mysql的端口号,方便开发者根据实际需求配置对应端口号。 一、为什么需要修改mysql端口号 默认情况下,mysql使用的端口号是3306。在某些情况下,我们需…

    编程 2025-04-29
  • Python清华镜像下载

    Python清华镜像是一个高质量的Python开发资源镜像站,提供了Python及其相关的开发工具、框架和文档的下载服务。本文将从以下几个方面对Python清华镜像下载进行详细的阐…

    编程 2025-04-29
  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29
  • 蝴蝶优化算法Python版

    蝴蝶优化算法是一种基于仿生学的优化算法,模仿自然界中的蝴蝶进行搜索。它可以应用于多个领域的优化问题,包括数学优化、工程问题、机器学习等。本文将从多个方面对蝴蝶优化算法Python版…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29

发表回复

登录后才能评论