【问题标题】:How to connect MySQL workbench with from shell using Python?如何使用 Python 从 shell 连接 MySQL 工作台?
【发布时间】:2019-08-22 10:04:52
【问题描述】:

我在 MySQL 工作台中有数据库,我正在从 shell 运行 Python 代码以连接到我的数据库。

但我无法导入 mysql.connector 或 mysqlDb(从 w3school 得到这个建议)。所以我无法连接到我的数据库。

【问题讨论】:

  • 是的,我正在使用 Python。 python

标签: python mysql-workbench


【解决方案1】:

我认为这个问题不涉及与 Putty 的连接,而是更多关于在 python 脚本中导入 mysql.connector 的问题。 “但我无法导入 mysql.connector 或 mysqlDb(从 w3school 获得此建议)” --如果您的代码附加到您的帖子中,它将更容易为您提供帮助。

import mysql.connector

cnx = mysql.connector.connect(########)

认为这段代码会有所帮助。“从 Oracle 加载文件”

def load_file(DT):
ip = ######
port = #####
service_name = '#####'
dsn = cx_Oracle.makedsn(ip, port, service_name=service_name)
t = datetime.now().strftime("%Y%m%d%H%M%S")
SQL = "select name...."
fn = "/root/..." + t + ".csv"
fn_tmp = "/root/.." + t + ".csv"
FILE = open(fn_tmp, "w")
FILE.write(
    'name...;' + '\n')
out = csv.writer(FILE, delimiter=';')
logging.info("Database connect " + t)
try:
    conn = cx_Oracle.connect('####', '###', dsn)
    cur = conn.cursor()
    cur.execute(SQL)
except cx_Oracle.DatabaseError, exc:
    conn = None
    error, = exc.args
    logging.error(
        "Oracle connection problem Error Code:{0}".format(str(error).decode("####",
                                                                            "ignore").encode("utf-8",
                                                                                             "ignore"))
    )
for row in cur:
    out.writerow(localize_floats(row))
logging.info("Database disconnect " + t)
try:
    cur.close()
    conn.close()
except cx_Oracle.DatabaseError, exc:
    error, = exc.argsgv[0]
    logging.error("Oracle-Error-Code:{0}".format(str(error).decode("####",
                                                                   "ignore").encode("utf-8",
                                                                                    "ignore"))
                  )
FILE.close()
os.rename(fn_tmp, fn)

【讨论】:

    【解决方案2】:

    您可以尝试的一个选项是使用 pymysql。更多信息here。一个代码sn-p如下:

    import pymysql.cursors
    
    connection = pymysql.connect(host='IP',
                             port=3306,
                             user='user',
                             password='pass',                             
                             db='database',
                             charset='utf8mb4',
                             autocommit=True,
                             cursorclass=pymysql.cursors.DictCursor)
    
    with connection.cursor() as cursor:
        query = 'Your query'
        cursor.execute(query)
    
    connection.close()
    

    【讨论】:

    • 感谢您的宝贵回答,但很抱歉我已经解决了我的问题。并且问的问题不合适,因为我是 StackOverFlow 的新手。
    • 嗨,别担心。我很高兴你解决了你的问题。无需为您提出的问题感到抱歉。正确提问和回答问题需要练习,并且从某个地方开始很重要。最好的问候。
    猜你喜欢
    • 1970-01-01
    • 2013-01-19
    • 2021-12-15
    • 2010-11-26
    • 2015-06-30
    • 2014-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多