首页 > 解决方案 > 找不到数据库文件

问题描述

mysql.connector.errors.ProgrammingError:1049(42000):未知数据库'prototype.db'

每次运行 python database.py 时都会出现此错误,这是文件的名称,而 Prototype.db 是数据库文件的名称。有什么帮助吗?

这是 database.py 文件的代码

import mysql.connector

#to create a database instance
MyDB = mysql.connector.connect(
    host = "Localhost",
    database = "Prototype.db",
    user = "root",
    password = ""
    )


#a cursor is an object we use to interact with the database
MyCursor = MyDB.cursor()

MyCursor.execute("CREATE TABLE IF NOT EXISTS Images (id INTEGER(45) NOT NULL AUTO_INCREMENT PRIMARY KEY, Photo BLOB NOT NULL")

#to select the file to upload
def InsertBlob(FilePath):
    with open(FilePath, "rb") as File:
        BinaryData = File.read()
    SQLStatement = "INSERT INTO Images (Photo) VALUES (%s)"
    MyCursor.execute(SQLStatement, (BinaryData, ) )
    MyDB.commit()

def RetrieveBlob(ID):
    SQLStatement2 = "SELECT * FROM Images WHERE id = {0}"
    MyCursor.execute(SQLStatement2.format(str(ID)))
    MyResult = MyCursor.fetchone()[1]
    StoreFilePath = "IMG/img{0}.jpg".format(str(ID))
    print(MyResult)
    
    with open(StoreFilePath, "wb") as File:
        File.write(MyResult)
        File.close()


#a menu to help us input data
print("1. Insert Image\n2. Read Image")
MenuInput = input()

if int(MenuInput) ==1:
    UserFilePath = input("Enter File Path:")
    InsertBlob(UserFilePath)
elif int(MenuInput) ==2:
    UserIDChoice = input("Enter ID:")
    RetrieveBlob(UserIDChoice)

标签: pythonmysqlblob

解决方案


您的数据库名称可能不完全相同,如果您使用它来查看数据库列表,请尝试从服务器复制确切的名称。确保只有当数据库的名称与您使用 DBMS 创建的名称相同时,它才会连接到数据库。此外,如果您更改端口号,那么您也需要提供端口。


推荐阅读