【问题标题】:An error when connect python code with Mysql using PyMysql使用 PyMysql 将 python 代码与 Mysql 连接时出错
【发布时间】:2020-06-20 02:54:11
【问题描述】:

亲爱的, 我正在努力将 python 代码与 MysqlDB 连接起来...... 但是当我运行下面的代码时出现错误

import cursor as cursor
import pymysql.cursors

# Connect to the database
con = pymysql.connect(host='127.0.0.1', user='root', password='123', db='db', port=3306)

request = ('name', 'authorname', 'price', 'file', 'bookcover', 'description')
sql = ("INSERT INTO test" 
       "(Bookname,Author,price,file,Bookcover,about)"
       "VALUES (%s, %s,%s, %s,%s, %s)")
cursor.execute(sql, request)
con.commit()
cursor.close()
con.close()
print('success')
/Users/sarahraad/PycharmProjects/untitled2/venv/bin/python /Users/sarahraad/PycharmProjects/untitled2/test1.py
Traceback (most recent call last):
  File "/Users/sarahraad/PycharmProjects/untitled2/test1.py", line 5, in <module>
    con = pymysql.connect(host='127.0.0.1', user='root', password='123', db='db', port=3306)
  File "/Users/sarahraad/PycharmProjects/untitled2/venv/lib/python3.8/site-packages/pymysql/__init__.py", line 94, in Connect
    return Connection(*args, **kwargs)
  File "/Users/sarahraad/PycharmProjects/untitled2/venv/lib/python3.8/site-packages/pymysql/connections.py", line 325, in __init__
    self.connect()
  File "/Users/sarahraad/PycharmProjects/untitled2/venv/lib/python3.8/site-packages/pymysql/connections.py", line 599, in connect
    self._request_authentication()
  File "/Users/sarahraad/PycharmProjects/untitled2/venv/lib/python3.8/site-packages/pymysql/connections.py", line 882, in _request_authentication
    auth_packet = _auth.caching_sha2_password_auth(self, auth_packet)
  File "/Users/sarahraad/PycharmProjects/untitled2/venv/lib/python3.8/site-packages/pymysql/_auth.py", line 238, in caching_sha2_password_auth
    pkt = conn._read_packet()
  File "/Users/sarahraad/PycharmProjects/untitled2/venv/lib/python3.8/site-packages/pymysql/connections.py", line 684, in _read_packet
    packet.check_error()
  File "/Users/sarahraad/PycharmProjects/untitled2/venv/lib/python3.8/site-packages/pymysql/protocol.py", line 220, in check_error
    err.raise_mysql_exception(self._data)
  File "/Users/sarahraad/PycharmProjects/untitled2/venv/lib/python3.8/site-packages/pymysql/err.py", line 109, in raise_mysql_exception
    raise errorclass(errno, errval)
pymysql.err.InternalError: (1049, "Unknown database 'db'")

Process finished with exit code 1

请多多指教

【问题讨论】:

  • 你有一个名为“db”的数据库吗?
  • @PaulCollingwood 是的,这就是我将其命名为 (db)
  • 你没有连接到你认为你正在连接的东西。错误中的倒数第二行指出 pymysql 看不到名为“db”的数据库。使用您在代码中提供的相同凭据登录数据库,并查看该帐户是否确实可以看到名为 db 的数据库。并且给定 db 是字段的名称,将其称为 db 只是令人困惑。将数据库命名为 db 以外的名称。

标签: python pymysql


【解决方案1】:

错误在这一行:

con = pymysql.connect(host='127.0.0.1', user='root', password='123', db='db', port=3306)

请务必说明您的实际数据库名称,而不仅仅是“db”。

例子:

con = pymysql.connect(host='127.0.0.1', user='root', password='123', db='name_of_db', port=3306)`

【讨论】:

  • ''db'' 是我的数据库的名称
  • 您是否尝试过更改数据库名称,或者这是否可行?
猜你喜欢
  • 2021-11-16
  • 2018-08-19
  • 2021-10-11
  • 1970-01-01
  • 2019-06-26
  • 2014-05-07
  • 2016-09-03
  • 2013-01-07
  • 1970-01-01
相关资源
最近更新 更多