`
crazier9527
  • 浏览: 1013861 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

python adodb 支持mysql非标准端口

阅读更多

原文链接:h ttp://www.iteye.com/topic/408249

python对数据库的操作大多是基于

MySQLdb 模块

http://mysql-python.sourceforge.net/

但是,一般情况下大家都很少直接去调用 MySQLdb 去操作数据库

大多会借助

adodb

http://phplens.com/lens/adodb/adodb-py-docs.htm

小用了一下 adodb发现,还是比较强大的,(简单,直观)

Python代码 复制代码
  1. import adodb;   
  2. conn = adodb.NewADOConnection('mysql')   
  3. conn.Connect('server','user','pwd','db')   
  4. cursor = conn.Execute('select * from table')   
  5.   
  6. while not cursor.EOF:   
  7.     print cursor.fields   
  8.     cursor.MoveNext()   
  9.   
  10. cursor.Close()   
  11. conn.Close()   
import adodb;
conn = adodb.NewADOConnection('mysql')
conn.Connect('server','user','pwd','db')
cursor = conn.Execute('select * from table')

while not cursor.EOF:
	print cursor.fields
	cursor.MoveNext()

cursor.Close()
conn.Close() 



这样用了一段时间,突然,DBA那边说,数据库需要复用下,又安装了一个mysql,即是两个mysql在一台机器上并存,占用不同的端口
标准端口(3306)
另外一个端口(3307)

再修改程序的时候发现,adodb根本就没有修改port的选项,

为了,不改动太多的已有代码,

于是乎,see了see ,adodb的源码,

(既然 MySQLdb 支持非标准port, 而 adodb是封装了MySQLdb,那就有办法搞搞)

1. 第一步
adodb-220/adodb/adodb.py

Python代码 复制代码
  1. 194     def Connect(self,host=None,user=None,password=None,database=None):   
  2. 195         self.database = database   
  3. 196         self.host = host   
  4. 197         self.user = user   
  5. 198         self.password = password   
  6. 199         self._connect(host,user,password,database)   
  7. 200         return bool(self._conn)   
  8.   
  9. 增加对 port的支持(其实就是增加从 adodb这边把port参数传入到 MySQLdb 那边就可以了)   
  10. 修改如下   
  11.   
  12. 194     def Connect(self,host=None,user=None,password=None,port=None,database=None):   
  13. 195         self.database = database   
  14. 196         self.host = host   
  15. 197         self.user = user   
  16. 198         self.password = password   
  17. 199         self.port = port   
  18. 200         if self.port is None:   
  19. 201             self._connect(host,user,password,database)   
  20. 202         else:   
  21. 203             self._connect(host,user,password,database,self.port)   
  22. 200         return bool(self._conn)  
194     def Connect(self,host=None,user=None,password=None,database=None):
195         self.database = database
196         self.host = host
197         self.user = user
198         self.password = password
199         self._connect(host,user,password,database)
200         return bool(self._conn)

增加对 port的支持(其实就是增加从 adodb这边把port参数传入到 MySQLdb 那边就可以了)
修改如下

194     def Connect(self,host=None,user=None,password=None,port=None,database=None):
195         self.database = database
196         self.host = host
197         self.user = user
198         self.password = password
199         self.port = port
200         if self.port is None:
201             self._connect(host,user,password,database)
202         else:
203             self._connect(host,user,password,database,self.port)
200         return bool(self._conn)



2. 第二步, 因为我是使用mysql,所以,只是去改动了adodb_mysql.py
   如果你是使用其他数据库,类同,修改之

Python代码 复制代码
  1. 34     def _connect(self,host=None,user=None,password=None,database=None):   
  2. 35         self._conn = MySQLdb.connect(host, user, password, database)   
  3.   
  4. 修改如下   
  5.   
  6. 34     def _connect(self,host=None,user=None,password=None,database=None, port=None):   
  7. 35         self._conn = MySQLdb.connect(host, user, password, database, port)  
34     def _connect(self,host=None,user=None,password=None,database=None):
35         self._conn = MySQLdb.connect(host, user, password, database)

修改如下

34     def _connect(self,host=None,user=None,password=None,database=None, port=None):
35         self._conn = MySQLdb.connect(host, user, password, database, port)



经过以上2步修改即可,(比较山寨哈)

使用例子

Python代码 复制代码
  1. import adodb   
  2. conn = adodb.NewADOConnection('mysql')   
  3. conn.Connect('10.10.10.1''user''password''mydb',3307)  
分享到:
评论

相关推荐

    php 使用ADODB操作MYSQL

    在PHP开发中,数据库操作是不可或缺的一部分,而ADODB(Active Record Object Database Abstraction Layer)是一个流行的数据库抽象层,它提供了统一的接口来处理多种数据库系统,包括MySQL。本篇文章将详细探讨如何...

    ADODB-mysql for Mono-开源

    1. **跨平台迁移**:如果你有一个使用ADODB与MS SQL Server交互的.NET应用,现在想要迁移到Linux或其他非Windows系统,ADODB-mysql库可以帮助你快速转换到MySQL,而无需重写大量数据库访问代码。 2. **简化开发**:...

    ADODB类应用模块源码

    在IT行业中,ADODB(ActiveX Data Objects Database)是一个广泛使用的接口,用于访问数据库,尤其在微软的Windows环境中。这个接口允许程序员通过编程语言(如VBScript、VBA或Visual Basic)与各种数据库系统交互,...

    adodb.zip_ACCESS数据库_access mysql_adodb mysql_adodb-time.inc.php

    本主题聚焦于如何使用ADODB(ActiveX Data Objects Database)库从Access数据库向MySQL数据库迁移数据。ADODB是一个强大的、跨平台的数据库访问组件,它允许程序员使用相同的接口来处理多种数据库系统,如Access、...

    PHP开发的企业网站源码 PHP+Smarty+Adodb+MySql

    它支持变量替换、条件语句、循环结构等模板语法,使得非程序员也能轻松编辑模板。 Adodb(Active Record Database Abstraction Library)是PHP中的一个数据库抽象层,允许开发者在不同的数据库系统间切换,如MySQL...

    易语言adodb支持库

    易语言是一种专为中国人设计的编程语言,它以简化的语法和中文命令名称为特点,降低了编程的门槛,使得更多非计算机专业的人也能轻松学习编程。在易语言中,"adodb支持库"是一个重要的模块,它允许程序员通过易语言...

    adodb.zip_adodb_collegekdk_connect_php4 mysql adodb_syllablexpe

    标题中的"adodb.zip_adodb_collegekdk_connect_php4_mysql_adodb_syllablexpe"揭示了这个压缩包的内容主要涉及ADODB库在PHP4版本中连接MySQL数据库的应用,同时可能包含一个或多个与"collegekdk"相关的项目或教程,...

    ADODB5中文手册.docx

    3. 广泛支持:ADODB当前支持的数据库有MySQL, PostgreSQL, Oracle, Interbase, Microsoft SQL Server, Access, FoxPro, Sybase, ODBC和ADO。 四、使用ADODB连接MySQL 下面是一个使用ADODB连接MySQL的示例代码: `...

    ADODB数据驱动操作支持库

    这个“ADODB数据驱动操作支持库”很可能是一个包含ADODB接口的组件或者类库,用于简化和增强开发者对数据库的操作能力。下面我们将深入探讨ADODB的核心概念、功能以及如何使用它进行数据库操作。 ADODB主要由以下几...

    mysql-connector-odbc-5.3.10-win32.rar

    在编程环境中,如Python的pyodbc库或VBA中的ADODB对象,开发者可以使用这些配置好的DSN来建立连接,执行SQL查询,插入、更新或删除数据。例如,在Python中,可以通过以下代码连接到MySQL数据库: ```python import ...

    PHP的adodb类库

    ADODB支持多种数据库驱动,包括PDO、MySQLi、MySQL、SQLite、Oracle等。通过统一的接口,开发者可以轻松切换数据库平台,无需修改大量代码。例如,`ADODB`提供`Connect()`和`PConnect()`函数来建立持久或非持久连接...

    易语言学习-ADODB数据库操作支持库 (1.4#3版).zip

    易语言是一种专为中国人设计的编程语言,它以简明的中文语法,降低了编程的门槛,使得更多非专业程序员能够快速上手。在易语言的学习过程中,数据库操作是不可或缺的一部分,尤其是在自动化和脚本编写中,数据库的...

    adodb中文帮助文档

    adodb php连接数据库,中文帮助文档

    ADODB数据驱动操作支持库2.0#6版(第三方) (2)

    本文将深入探讨ADODB数据驱动操作支持库2.0#6版,这是一个第三方提供的易语言支持库,适用于易语言编程环境。 易语言是一种以“中文编程”为特色的编程语言,旨在降低编程难度,提高开发效率。易语言教程和模块等...

    Python操作Access数据库基本步骤分析

    在Python编程中,与Access数据库进行交互是常见的任务,尤其在处理小型数据存储或Windows环境下的应用程序时。本篇文章将详细解析Python操作Access数据库的基本步骤,并提供实例代码以供参考。 首先,确保你已经...

    ADODB 手册。

    ADODB(ActiveX Data Objects Database)是一个开源的数据库访问库,尤其在PHP环境中广泛应用,用于与各种数据库系统进行交互,包括MySQL、Oracle、SQL Server等。这个手册将深入讲解ADODB的关键概念、功能和用法。 ...

    adodb

    AdODB支持多种数据库连接方式,包括PDO、mysqli和旧版的mysql扩展。通过`ADONewConnection`函数,你可以轻松创建到指定数据库的连接。例如,连接到MySQL数据库: ```php $db = ADONewConnection('mysqli'); $db-...

    VB6.0连接MySQL数据库

    - 端口号:MySQL数据库监听的端口,默认为3306。 - 用户名:具有访问数据库权限的MySQL用户账户名。 - 密码:对应用户名的访问密码。 - 默认数据库:连接时默认使用的数据库名称。 配置完毕后,可以测试DSN以确保...

    php adodb文件包

    此外,ADODB支持事务处理,这对于处理复杂的数据库操作至关重要: ```php $connection->BeginTrans(); try { // 执行一系列数据库操作 $connection->Execute('INSERT INTO table (col1, col2) VALUES (?, ?)', ...

Global site tag (gtag.js) - Google Analytics