试图连接外部MySQL数据库

时间:2018-05-27 12:39:00

标签: python mysql raspberry-pi wamp

我正在尝试在我的PC上建立的wamp数据库中插入一个带有覆盆子pi的行。两个设备都连接到同一个路由器,我已经为RPi设置了用户权限,但是当我尝试连接到数据库时,代码粘在connector.Connect函数上,并且没有异常被捕获。 这是使用过的代码:

from mysql import connector

print('0')
try:
    con = connector.Connect(user='own_pi',password='password',database='tempbase',host='192.168.0.104', port=3306)
except connector.Error as e:
    print("Error code:", e.errno)        # error number
    print("SQLSTATE value:", e.sqlstate) # SQLSTATE value
    print("Error message:", e.msg)       # error message
    print("Error:", e)                   # errno, sqlstate, msg values
    s = str(e)
    print("Error:", s)                   # errno, sqlstate, msg values

print('1')
cur = con.cursor()
print('2')
cur.execute("INSERT INTO `sensor_readings` (`uid`, `local_id`, `type`, `date`, `reading`) VALUES ('7', '4', 'temperature', '2018-06-04', '24.4');")
print('3')
con.commit()
print('4')
con.close()
print('5')

永远不会调用此打印('1')行,并且该过程永远保持活着状态。

你知道什么可能引发这种行为,我该如何解决?

2 个答案:

答案 0 :(得分:0)

尝试使用:

from mysql import connector

print('0')
try:
    con = connector.Connect(user='own_pi',password='password',database='tempbase',host='192.168.0.104', port=3306)
    print('1')

    cur = con.cursor()
    print('2')
    cur.execute("INSERT INTO `sensor_readings` (`uid`, `local_id`, `type`, `date`, `reading`) VALUES ('7', '4', 'temperature', '2018-06-04', '24.4');")
    print('3')
    con.commit()
    print('4')
    con.close()
    print('5')

except connector.Error as e:
    print("Error code:", e.errno)        # error number
    print("SQLSTATE value:", e.sqlstate) # SQLSTATE value
    print("Error message:", e.msg)       # error message
    print("Error:", e)                   # errno, sqlstate, msg values
    s = str(e)
    print("Error:", s)                   # errno, sqlstate, msg values

答案 1 :(得分:0)

问题的根源是Windows 10默认防火墙设置。感谢您的支持。