【问题标题】:Schema/Database Created in Python Code is not appearing in MySQL Workbench / MySQL Server在 Python 代码中创建的模式/数据库未出现在 MySQL Workbench / MySQL Server 中
【发布时间】:2020-04-27 19:06:46
【问题描述】:

我正在尝试在 python 代码中创建模式/数据库,并且能够创建表,将数据插入其中,但是当我检查 MySQL 工作台时,没有出现在 Python 中创建的数据库。

我的工作空间详情:

安装的mysql连接器:pip install mysql-connector-python

Python 版本:3.8

MySql 8.0 版

这是我用python写的代码

代码 sn-p:

import mysql.connector
mydb=mysql.connector.connect(host="localhost",user="root",passwd="mysql")
mycursor=mydb.cursor()
mycursor.execute("create database databaseforpython4")

也只能访问在 Python 中创建的架构,但不能创建在 MySQL 中创建的架构

【问题讨论】:

  • 我的系统中有两个 MySQL 实例,一个端口号为 3306,另一个端口号为 3307。我没有使用 3306 实例,因为它是旧版本,当我尝试从Python,默认情况下它使用端口 3306,但我正在查看 3307 实例。所以,在 python 中,我有外部端口号,然后我可以看到创建的架构。

标签: python mysql


【解决方案1】:

在创建数据库后使用命令USE,您可以在此处添加一个新表,如示例

 import mysql.connector
 mydb=mysql.connector.connect(host="localhost",user="root",passwd="mysql",     database="formtest")
 mycursor=mydb.cursor()
 mycursor.execute("create database databaseforpython4")
 mycursor.execute("use databaseforpython4")
 mycursor.execute("CREATE TABLE `a` ( `a_col1` varchar(40) CHARACTER SET utf8 COLLATE utf8mb4_general_ci DEFAULT NULL, `a_col2` varchar(40) DEFAULT NULL, KEY `testindex2` (`a_col2`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;")

运行代码后工作台显示新数据库和新表。

使用 VS Code 和 Python 3.8.2 测试

【讨论】:

  • 感谢您写出来,但它不起作用...我在发布之前尝试过这个
  • 尝试一下,看看你得到了什么错误,因为我写了同样的代码工作正常,因为用户有权限。但是您根本没有进行错误处理
【解决方案2】:

您需要指定您在 MySQL 中使用的端口,例如,如果您使用的是默认端口,您需要将代码更改为:

db = mysql.connector.connect(
     host="localhost",
     user="root",
     passwd="mysql",
     database="testdatabase",
     port="3306")

【讨论】:

    猜你喜欢
    • 2011-09-18
    • 2014-02-14
    • 1970-01-01
    • 2012-10-12
    • 2014-02-24
    • 1970-01-01
    • 2014-01-10
    • 2013-01-25
    • 2013-11-12
    相关资源
    最近更新 更多