【问题标题】:unknown database with mysql-connector in pythonpython中带有mysql-connector的未知数据库
【发布时间】:2021-01-10 08:54:27
【问题描述】:

我是处理数据库的新手。我在 phpmyadmin 中创建了一个简单的数据库,并将它与另一个数据库连接起来。现在我正在尝试使用 mysql-connector 模块访问 python 中的数据库,但 python 似乎无法检测到它。我已将我的数据库命名并保存为下面的数据库,但我不知道这是否连接或可以找到它。我将 DB 转换为 .sql,但我不知道如何处理它。

import mysql.connector

mydb = mysql.connector.connect(
    host='localhost',
    user='root',
    password='',
    database='python_sql',
    )

此外,我对 PHP 几乎一无所知,所以我无法像某些人那样编写一些花哨的脚本。我在教程中看到人们通过这一步没有问题,即使他们在 phpmyadmin 中制作程序,所以我不知道我的代码有什么问题。当我运行它时,我收到以下错误。

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/mysql/connector/connection_cext.py", line 216, in _open_connection
    self._cmysql.connect(**cnx_kwargs)
_mysql_connector.MySQLInterfaceError: Unknown database 'python_sql'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/johnminton/Documents/Python/Python database internal/mysql-db.py", line 7, in <module>
    database='python_sql'
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/mysql/connector/__init__.py", line 264, in connect
    return CMySQLConnection(*args, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/mysql/connector/connection_cext.py", line 80, in __init__
    self.connect(**kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/mysql/connector/abstracts.py", line 966, in connect
    self._open_connection()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/mysql/connector/connection_cext.py", line 219, in _open_connection
    sqlstate=exc.sqlstate)
mysql.connector.errors.ProgrammingError: 1049 (42000): Unknown database 'python_sql'

编辑:当我删除 'database=python_sql' 时,我没有收到任何错误,所以它似乎可以很好地连接到我的本地主机

【问题讨论】:

  • 您是否向连接器提供了 root 密码,并且您在数据库名称后有一个备用逗号。
  • 您缺少 PHP 与这段 Python 代码有什么关系?另外,你确定数据库python_sql存在吗?

标签: python mysql database mysql-connector


【解决方案1】:

在这段代码中,您可以处理由于连接而发生的大多数错误

from mysql.connector import errorcode
try:
  myconn = mysql.connector.connect(
      host='your host name ',
      user='username',
      passwd='Password to access',
      database='DataBase Name')
except mysql.connector.Error as err:
    if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
        print("Something is wrong with your user name or password")
    elif err.errno == errorcode.ER_BAD_DB_ERROR:
        myconn = mysql.connector.connect(
            host='localhost',
            user='root',
            passwd='1234',
        )
        mycurs = myconn.cursor()
        mycurs.execute("CREATE DATABASE ttt")
        myconn = mysql.connector.connect(
            host='localhost',
            user='root',
            passwd='1234',
            database='ttt'
        )
    else:
        print(err)
else:
  myconn.close()

【讨论】:

  • 这个答案可能会导致不需要的结果。此代码创建一个名为ttt 的数据库。这可能不是想要的。我也认为这并不能回答问题。也请您这么友善,并在回答问题时付出更多努力。你的英语很难理解。你能编辑你的答案吗?
  • 您好,欢迎来到 SO!请阅读tourHow do I write a good answer?
猜你喜欢
  • 1970-01-01
  • 2016-03-14
  • 2014-06-16
  • 2017-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-15
相关资源
最近更新 更多