【问题标题】:can't locate the database file找不到数据库文件
【发布时间】:2021-11-08 21:44:52
【问题描述】:

mysql.connector.errors.ProgrammingError: 1049 (42000): Unknown database '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)

【问题讨论】:

  • MySQL 不会在外部将数据库表示为文件。尝试省略“.db”。

标签: python mysql blob


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    语法错误

    Prototype.db
    

    表示数据库Prototype和表db

    所以检查你的服务器存在哪些数据库

    SHOW DATABASES;

    我觉得应该是

    原型

    没有任何附加文字,但最好先检查

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-08
      • 1970-01-01
      • 2017-05-15
      • 1970-01-01
      • 1970-01-01
      • 2016-07-30
      相关资源
      最近更新 更多