Python 如何从任何计算机编辑MySQL数据库?
我创建了一个访问MySQL数据库的Python程序。它运行时所做的是将用户的Logged_in列编辑为1,因此我知道该用户已登录Python 如何从任何计算机编辑MySQL数据库?,python,mysql,Python,Mysql,我创建了一个访问MySQL数据库的Python程序。它运行时所做的是将用户的Logged_in列编辑为1,因此我知道该用户已登录 UPDATE users SET logged_in = 1 WHERE username = "username"; 工作完美。每次运行时,它都会编辑数据库,这样我就知道谁登录了 问题是,它只在我的电脑上工作。当其他人使用它时,它会说 DatabaseError: 2003 (HY000): Can´t connect to MySQL ser
UPDATE users SET logged_in = 1 WHERE username = "username";
工作完美。每次运行时,它都会编辑数据库,这样我就知道谁登录了
问题是,它只在我的电脑上工作。当其他人使用它时,它会说
DatabaseError: 2003 (HY000): Can´t connect to MySQL server on 'ip address'
我不明白我必须做什么才能使这个数据库从任何地方和任何人都可以访问和编辑
谢谢你的建议
注意:我读到过类似的问题,一个解决方案是在想要访问主机的计算机上创建一个数据库,但我需要运行该程序的任何人都可以对该数据库进行编辑,这样我就不会拥有他们计算机的信息
简化代码:
导入mysql.connector
用户在Tkinter GUI中输入用户名和密码
用户名=堆栈溢出
密码=123456
def主:
访问数据库
mydb=mysql.connector.connect
主机=我的计算机\u ip,
用户=数据库用户,
密码=密码,
数据库=用户,
端口=3306
获取光标以允许执行命令
mycursor=mydb.cursor
获取用户信息
mycursor.executeSELECT用户名、密码、从以下用户登录
用户名={};。格式化用户名
myresult=mycursor.fetchone
如果找到用户,则显示结果。
如果myresult不是None且lenmyresult>0:
打印连接成功\n用户:{}\n传递{}.formatmyresult[0],myresult[1]
其他:
printUser不存在。
返回错误
下一步是将输入密码与数据库中的密码匹配,
如果它们匹配,则允许访问GUI。
此外,登录列将更改为1,以让数据库知道用户正在登录。
主要的
您的数据库用户可能只能通过localhost访问。检查数据库用户和权限。如果您使用的是MySQL Workbench,则可以运行以下查询: 从mysql.User中选择用户、主机 分配给数据库用户的主机应该是通配符%,而不是本地主机,以便在任何地方访问数据库 您可以使用%host创建另一个数据库用户,也可以更新现有的数据库用户 创建由“密码”标识的用户“数据库用户”@“%”; 或
更新mysql.user SET host='%'其中user='database_user' 当其他人在同一工作站上使用Python程序时,您可以提供整个Python程序或至少一些Python程序吗?或者另一个操作系统实例中的帐户?正如错误所述,其他用户无法访问数据库服务器的ip地址。如果数据库在您的本地计算机上,您将不会有问题。AbhigyanJaiswal-感谢您的回复。我添加了简化的代码,希望可以!Akina-我将使用具有必要权限的用户。操作系统应该是windows,就像我的一样,但来自不同的机器。用户没有安装Workbench,更改只是为了跟踪谁使用Python程序。jignatius-我想让其他人可以从任何其他机器访问它。谢谢你的回答!用户有一个%host。数据库从我的机器上运行。Workbench有一个服务器标签,上面写着“正在运行”,所以我猜只要我的机器打开,数据库就可以访问,我错了吗?