【问题标题】:Where are my python mysql file queries updating? Updates not showing in MySQL 8.0 Command Line Client我的 python mysql 文件查询在哪里更新? MySQL 8.0 命令行客户端中未显示更新
【发布时间】:2021-02-20 22:20:39
【问题描述】:

我已经在我的计算机上安装了 MySQL,并且我已经成功地在 MySQL 8.0 命令行客户端上运行了查询

现在我正在尝试一些 python 脚本,我相信我已经完成了必要模块的 pip 安装,当我运行下面的代码时没有返回错误

但是,当我运行代码时,MySQL 8.0 命令行客户端中的数据库没有更新

代码示例 1

import pymysql.cursors

# Connect to the database
connection = pymysql.connect(host='localhost',
                             user='root',
                             password='root',
                             db='news',
                             charset='utf8mb4',
                             cursorclass=pymysql.cursors.DictCursor)

try:
    with connection.cursor() as cursor:
        # Create a new record
        sql = "INSERT INTO headline_titles (Title, Language, Translation, Url) VALUES ('Dummy Title 2','German', 'Dummy Translation 2', 'Dummy Url 2');"
        cursor.execute(sql)

    # connection is not autocommit by default. So you must commit to save
    # your changes.

finally:
    connection.close()

代码示例 2

import pymysql
pymysql.install_as_MySQLdb()
import MySQLdb

db = MySQLdb.connect(host="localhost",    # your host, usually localhost
user="root",         # your username
passwd="root",  # your password
db="news")        # name of the data base

# you must create a Cursor object. It will let
#  you execute all the queries you need
cur = db.cursor()

# Use all the SQL you like
cur.execute("INSERT INTO headline_titles (Title, Language, Translation, Url) VALUES ('Dummy Title 2','German', 'Dummy Translation 2', 'Dummy Url 2');")

db.close()

我不确定上述代码是否链接到我计算机上安装的 MySQL 软件及其默认路径,或者正在尝试保存到 python 文件的路径。

由于我想将 python 文件发送给某人,我希望此代码执行到保存在 python 文件路径中的数据库,例如在与 python 文件相同的文件夹中。

我尝试将文本文件保存为 MySQL 文件扩展名并运行上述文件,但它似乎没有更新。

任何想法我做错了什么?

【问题讨论】:

    标签: mysql python-3.x mysql-python


    【解决方案1】:

    MySQL 需要一个服务器才能运行。

    你有你的数据库新闻,你可以备份和发送。

    但是接收数据库转储的人还需要安装一个服务器并导入它。

    另一种选择是发送一个 docker 镜像,这将包含所有内容,但这还需要一个运行 docker 镜像的软件。

    您可以考虑使用带有附加数据库的 Web 服务器,这样只有一个服务器存在,但由于您不应该公开您的数据库,您需要一个 REST api,它收集数据并发送到您的程序。

    但是,当您想向您的程序发送数据时,您可以考虑使用 sqllite,一个基于文件的数据库,您可以将它与您的程序一起交付。无需安装更多程序。

    【讨论】:

    • 感谢您的回答。我缺少 db.commit() 命令,因为我使用 SQL 语句插入记录。当我添加 db.commit() 命令时,它更新了 MySQL 服务器文件夹中的数据库,这些数据库是隐藏文件。我仍在试图弄清楚如何在 python 文件的路径中更新该数据库的副本。在之前的作业中,我已经能够在 python 文件的路径中从数据库中查询数据,但我对此很生疏。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-07
    • 2019-01-27
    • 1970-01-01
    • 2011-01-05
    • 2021-08-08
    • 2014-02-08
    相关资源
    最近更新 更多