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

python脚本连接mysql

 
阅读更多
文件db
#!/usr/bin/python
#coding=gbk
 
from dbconf import dbconf
from urlparse import urlparse
import os, sys
import re
 
def warning(str):
    print '\033[1;31mWARNING: %s\033[0m' %str
 
def info(str):
    print '\033[0;33m%s\033[0m' %str
 
def parse(url):
    username = ''
    password = ''
    host = ''
    port = 3306
    db = ''
    if url.startswith("mysql://"):
        url = url[8:]
        p = re.compile("[:@/]")
        arr = p.split(url)
        if len(arr) == 5:
            username = arr[0]
            password = arr[1]
            host = arr[2]
            port = arr[3]
            db = arr[4]
        if len(arr) == 7:
            username = arr[0]
            password = ''.join([arr[1], '@', arr[2], '@', arr[3]])
            host = arr[4]
            port = arr[5]
            db = arr[6]
    return {
        'user' : username,
        'password' : password,
        'host' : host,
        'port' : port,
        'db' : db,
    }
 
def init(conf):
    map = {}
    desc = {}
    for i in conf:
        conn = parse(i['url'])
        for j in i['name']:
            if j in map:
                warning('duplicate key %s!' % j)
            map[j] = conn
            if 'desc' in i:
                desc[j] = '[%s]%s' %(conn['host'], i['desc'])
    return map, desc
 
def initusermap():
    fn = os.path.join(os.environ['HOME'], 'bin', 'userdbconf.py');
    if os.path.exists(fn):
        sys.path.append(os.path.dirname(fn))
        from userdbconf import dbconf
        for i in dbconf:
            dbconf[i] = parse(dbconf[i])
        return dbconf
    return {}
 
def usage(dbdesc):
    dbdesc = sorted(dbdesc.items(), key=lambda x : x[0])
    info('dbconf列表:')
    for name, desc in dbdesc:
        info('%20s: %s' %(name,desc))
 
def main():
    dbmap, dbdesc = init(dbconf)
    dbmap.update(initusermap())
    if len(sys.argv) < 2:
        usage(dbdesc)
        return
    else:
        db = sys.argv[1]
    params = ' '.join(sys.argv[2:])
 
    if not db in dbmap and db.endswith('.rw') and db[:-3] in dbmap:
        db = db[:-3]
        warning('use %s instead' % db)
 
    if db in dbmap:
        cmd = 'mysql -A -U -u%(user)s -p%(password)s -h%(host)s -P%(port)s %(db)s ' % dbmap[db]
        info(cmd)
        os.system(cmd + params)
    else:
        warning('%s not found' % db)
 
if __name__ == '__main__':
    main()


文件dbconf.py
#!/usr/bin/python
#coding=utf-8
 
 
dbconf = [
     
 # mart_finance
    {'url': 'mysql://username:"password"@ip:port/dbname',
     'name': ['dbname'],
     'desc':'xxx数据库'
     },

]


ln -s /Users/wanglin/script/db /usr/local/bin/db

即可 命令行 db dbname快速连接mysql
分享到:
评论

相关推荐

    python连接mysql数据库脚本工具

    一旦安装完成,你可以创建一个Python脚本来建立与MySQL服务器的连接。以下是一个基本示例: ```python import pymysql # 数据库连接参数 host = 'localhost' # MySQL服务器地址 port = 3306 # MySQL服务器端口 ...

    python自动安装mysql

    该Python脚本主要用于自动化部署MySQL数据库服务。脚本能够处理解压缩MySQL安装包、创建MySQL用户与组、配置MySQL目录权限、初始化MySQL数据库以及设置MySQL服务启动等相关操作。整个过程高度自动化,减少人工干预,...

    python自动备份mysql数据库,并删除七天前文件

    由于Python脚本更便于处理文本,所以我们通常会选择逻辑备份,即使用`mysqldump`。在Python中,可以通过`subprocess`模块来调用这个命令行工具。 接下来,我们需要编写一个Python脚本来执行以下任务: 1. 连接MySQL...

    【用Python 脚本查看MySQL innodb表空间中页的汇总情况】

    用Python 脚本查看MySQL表空间中页的汇总情况

    Python-mysqldiff是一款轻量级数据库对比工具同时支持新增表的默认数据导入

    源代码部分可能包含模块化的Python脚本,用于执行数据库连接、查询、差异分析以及SQL脚本生成等功能。 总的来说,Python-mysqldiff是Python开发环境下一个实用的数据库管理工具,它简化了数据库的版本控制,提高了...

    python写的mysql数据备份脚本

    python写的mysql数据备份脚本,可以分库,分表

    python连接mysql模块mysql-connector-python

    这使得该模块成为Python中非常实用的MySQL连接工具。 在实际项目中,`mysql-connector-python`常用于数据分析、Web应用开发、自动化脚本等场景,它的稳定性和易用性使得它成为Python程序员首选的MySQL接口之一。 ...

    python连接MySQL数据库问题.docx

    ### Python 连接 MySQL 数据库详解 在进行数据分析或 Web 开发时,经常需要使用 Python 操作 MySQL 数据库。本文将详细介绍如何使用 Python 连接到 MySQL 数据库,并解释 `cursor()`、`execute()` 和 `fetchall()` ...

    python备份mysql数据库

    通过理解这些知识点,我们可以构建一个完整的流程,即使用Python脚本连接到MySQL服务器,调用mysqldump工具生成SQL备份文件,然后可能使用7z进行压缩,最后将备份文件存储到指定位置。同时,配置文件如`config.ini`...

    python定时备份mysql数据库脚本

    本篇将详细解释如何使用Python编写一个定时备份MySQL数据库的脚本,以及如何通过代码实现仅保留最新几个备份文件的功能。 首先,我们需要了解Python中的两个关键库:`pymysql` 和 `schedule`。`pymysql` 是Python...

    python链接mysql脚本

    python链接mysql脚本 链接ejabberd 进行外部验证的脚本,需要更改自己数据库的一些设置

    python脚本批量修改mysql中数据库的dblink地址

    python脚本批量修改mysql中数据库的dblink地址。请查看。

    python使用mysql数据库时需要安装的开源mysql连接工具,64位的

    其中,MySQLdb是Python中一个广泛使用的开源MySQL连接工具,尤其适合于Python 2.x版本。它提供了Python编程语言与MySQL数据库之间的接口,使得Python开发者能够方便地在应用程序中操作MySQL。 MySQLdb是Python的...

    python脚本,根据excel数据自动创建mysql库、表-并更新数据

    python3.7.4版本,文件包含excel文件和py文件。 py文件中需要手动设置excel字段在mysql中的类型、index索引及写入时校验的字段。(搜索*查找对应的位置) 执行py文件,若不存在数据库及表会自动创建,并写入数据...

    Spotfire的python脚本对数据库的调用_spotfirepython_

    在这个主题中,我们将深入探讨如何使用Spotfire的Python脚本功能来调用和操作数据库。 首先,了解Spotfire的Python脚本环境。在Spotfire中,你可以通过“分析”菜单选择“编辑脚本”来访问Python脚本编辑器。这里,...

    java调用python+访问mysql数据实例

    本实例主要探讨如何利用Java调用Python脚本,并通过Python连接MySQL数据库来访问和获取数据。这一过程涉及的技术栈包括Java的进程调用、Python的数据库操作以及MySQL的数据库连接。 首先,Java调用Python通常可以...

    python2.7+mysql+pywin32

    在PyCharm中,用户可以配置这些库的位置,以便在编写代码时进行自动完成和错误检查,同时也能方便地运行和调试Python脚本。 总的来说,这个组合——Python 2.7、MySQL、pywin32和PyCharm——为Windows平台上的...

    批量执行SQL SERVER脚本 Python脚本

    Python脚本,批量执行数据库脚本,适用于SQL Server数据库,后续会上传MySQL的批量执行sql脚本

    python脚本 通过cmd操作数据库

    下面是一份基础的Python脚本示例,演示了如何通过CMD运行MySQL命令: ```python import pymysql import os # 连接数据库 def connect_db(): db = pymysql.connect("localhost", "username", "password", ...

    Python访问Mysql数据库

    以下是一个简单的示例,展示了如何使用`mysql-connector-python`连接MySQL数据库并执行查询: ```python import mysql.connector # 创建连接 cnx = mysql.connector.connect(user='username', password='password'...

Global site tag (gtag.js) - Google Analytics