使用Python连接器从RaspberryPi远程访问MySQL数据库
我试图从raspberry pi远程访问存储在windows机器上的MySQL数据库。我使用的MySQL版本是服务器版本:8.0.19 MySQL社区服务器-GPL。我在windows计算机上设置了一个名为“RaspberryPi”的用户,并授予其访问数据库“database1”的权限使用Python连接器从RaspberryPi远程访问MySQL数据库,mysql,python-3.x,mysql-python,Mysql,Python 3.x,Mysql Python,我试图从raspberry pi远程访问存储在windows机器上的MySQL数据库。我使用的MySQL版本是服务器版本:8.0.19 MySQL社区服务器-GPL。我在windows计算机上设置了一个名为“RaspberryPi”的用户,并授予其访问数据库“database1”的权限 CREATE USER RaspberryPi@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON database1.* TO RaspberryPi@'
CREATE USER RaspberryPi@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON database1.* TO RaspberryPi@'%';
我正在使用python连接器与数据库交互
在本地windows计算机上运行python脚本时,它可以正常工作,但在尝试实现远程连接时,它会导致错误。我在raspberry pi上运行的代码如下所示
#!/usr/bin/python3.7
import mysql.connector
from mysql.connector import MySQLConnection, Error
def connect():
conn = None
try:
conn = mysql.connector.connect(
host=<IP_ADDRESS_OF_WINDOWS_MACHINE>,
database='database1',
user='RaspberryPi',
password='password',
port=3309
)
if conn.is_connected():
print('Connected to MySQL database')
except Error as e:
print(e)
finally:
if conn is not None and conn.is_connected():
print('Connection closed')
conn.close()
if __name__ =='__main__':
connect()
#/usr/bin/python3.7
导入mysql.connector
从mysql.connector导入MySQLConnection时出错
def connect():
conn=无
尝试:
conn=mysql.connector.connect(
主机=,
database='database1',
user='RaspberryPi',
password='password',
端口=3309
)
如果连接已连接():
打印('连接到MySQL数据库')
除错误e外:
打印(e)
最后:
如果conn不是None且conn.已连接():
打印('连接已关闭')
康涅狄格州关闭
如果“名称”=“\uuuuuuuu主要”:
连接()
上述代码的结果是:
2003: Can't connect to MySQL server on '<IP_ADDRESS_OF_WINDOWS_MACHINE>:3309' (110 Connection timed out)
2003:无法连接到“:3309”上的MySQL服务器(110连接超时)
我已经阅读了关于更改“绑定地址”的其他问题
但是,在我位于C:\ProgramData\MySQL\MySQL Server 8.0\my.ini下的配置文件中,该文件中没有提到绑定地址
我还尝试使用windows机器上的workbench连接到数据库,但没有给它默认的127.0.0.1主机名,而是给了它windows机器的IP地址,它连接得很好
编辑
问题在于端口号应为3306,如评论中所述。我仍然无法在MySQL的配置文件中找到绑定地址。您确定这是ok port=3309吗??MySql标准端口是3306谢谢你我一直在为我做错的事情发狂哈哈现在工作了