【问题标题】:Connect to mySQL with python 3使用 python 3 连接到 mySQL
【发布时间】:2019-01-24 03:45:57
【问题描述】:

我的 mySQL 有问题

我使用以下命令将它安装在我的树莓派 - python 3 虚拟环境中:

sudo pip install mysql-connector

我有以下脚本:

import mysql.connector

mydb = mysql.connector.connect(
    host="127.0.0.1",
    port="11300",
    user="pi",
    passwd="1234"
 )

print(mydb)

但是什么都没有发生,没有错误,没有连接,...我在 TCP 连接下用命令 'netstat' 找到了端口号

【问题讨论】:

  • 这意味着它的工作,所以继续做一些事情做一些查询等。
  • 我期待像<mysql.connector.connection.MySQLConnection object ar 0x16645F0> 这样的东西,但是好的,我用mycursor = mydb.cursor()mycursor.execute("CREATE DATABASE myDatabase") 做了另一个测试,然后搜索数据库:mycursor.execute("SHOW DATABASE") 但仍然没有任何反应......
  • 您必须获取才能看到查询的响应
  • 我阅读了那些 cmets,并尝试了一些东西,但仍然没有任何反应......

标签: mysql database


【解决方案1】:

execute 之后需要打开游标才能得到结果 你可以像这样打开游标:

mycursor.fetchall() 返回可迭代对象。

for row in mycursor.fetchall():
    print(row)

mycursor.fetchone() 从结果中获取第一行

print(mycursor.fetchone())

附:你确定你已经正确安装了那个包吗?

例如:对于 ubuntu,您可以通过键入以下内容为 python3 安装此软件包:

apt install python3-mysql.connector

【讨论】:

  • 安装成功,当我在提示符下输入mysql --help,再看port我有一个值0这正常吗?现在有了netstat,我再也看不到 TCP/IP 了??
  • 端口值0正常。你已经执行了mycursor.execute("SHOW DATABASE") 你可以试试:mycursor.execute("SHOW DATABASES") 并通过打开光标来获取行
  • 这是我拥有的import mysql.connector try: mydb = mysql.connector.connect(user='pi',password='1234',host='127.0.0.1',port='11300',database='test') mycursor = mydb.cursor() mycursor.execute("SHOW DATABASES") mycursor.fetchall() except: print("error") 但我还是一无所获,就像提示在等待什么,但我可以做任何事情..
  • 执行后尝试运行这个:for row in mycursor.fetchall(): print(row)
  • @WerbrouckBram 我已经编辑了主要答案,在那里查看示例
猜你喜欢
  • 2013-02-20
  • 2021-11-16
  • 1970-01-01
  • 2023-03-12
  • 2013-07-21
  • 2018-12-14
  • 1970-01-01
  • 2010-10-04
  • 2020-04-21
相关资源
最近更新 更多