如何允许其他 PC 将数据添加到我 MySQL.in 我计算机中的数据库
How to give permission to other PC to add data to my database in MySQL.in my computer
我在这里制作了一个 python 程序,我想将代码发送给我的朋友,但他无法通过该程序向我的数据库添加值,有没有办法允许他访问。
代码:
from tkinter import *
import mysql.connector as mysql
root = Tk()
def flush(*args):
name = nme.get()
phone = ph.get()
emirate = e_id.get()
con = mysql.connect(host='127.0.0.1', user='root', password='monkey123', database='NZ')
c = con.cursor()
c.execute("Insert into gliy VALUES ('"+name+"','"+str(phone)+"','"+str(emirate)+"')")
c.execute('commit')
con.close()
e_1.delete(0, END)
e_2.delete(0, END)
e_3.delete(0, END)
nme= StringVar()
ph = IntVar()
e_id = IntVar()
label_1 = Label(root,text='Patient Name',fg='blue')
label_2 = Label(root,text='Phone number',fg='blue')
label_3 = Label(root,text='Emirates ID',fg='blue')
label_1.grid(row=0,column=0)
label_2.grid(row=1,column=0)
label_3.grid(row=2,column=0)
e_1 = Entry(root,borderwidth=2,textvariable=nme)
e_2 = Entry(root,borderwidth=2,textvariable=ph)
e_3 = Entry(root,borderwidth=2,textvariable=e_id)
e_1.grid(row=0,column=1,ipady=10,padx=10,pady=10)
e_2.grid(row=1,column=1,ipady=10,padx=10,pady=10)
e_3.grid(row=2,column=1,ipady=10,padx=10,pady=10)
B_1 = Button(root,text='ENTER',command =flush)
B_1.grid(row=4,column=1)
root.mainloop()
错误:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users513\AppData\Local\Programs\Python\Python38-32\lib\site-packages\mysql\connector\network.py", line 509, in open_connection
self.sock.connect(sockaddr)
ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users513\AppData\Local\Programs\Python\Python38-32\lib\tkinter\__init__.py", line 1883, in _call_
return self.func(*args)
File "C:/Users/97513/AppData/Local/Programs/Python/Python38-32/new.py", line 14, in flush
con = mysql.connect(host='127.0.0.1', user='root', password='monkey123', database='NZ')
File "C:\Users513\AppData\Local\Programs\Python\Python38-32\lib\site-packages\mysql\connector\__init__.py", line 179, in connect
return MySQLConnection(*args, **kwargs)
File "C:\Users513\AppData\Local\Programs\Python\Python38-32\lib\site-packages\mysql\connector\connection.py", line 95, in _init_
self.connect(**kwargs)
File "C:\Users513\AppData\Local\Programs\Python\Python38-32\lib\site-packages\mysql\connector\abstracts.py", line 716, in connect
self._open_connection()
File "C:\Users513\AppData\Local\Programs\Python\Python38-32\lib\site-packages\mysql\connector\connection.py", line 206, in _open_connection
self._socket.open_connection()
File "C:\Users513\AppData\Local\Programs\Python\Python38-32\lib\site-packages\mysql\connector\network.py", line 511, in open_connection
raise errors.InterfaceError(
mysql.connector.errors.InterfaceError: 2003: Can't connect to MySQL server on '127.0.0.1:3306' (10061 No connection could be made because the target machine actively refused it)
发生这种情况是因为您在计算机上 运行 本地 MySQL(根据您对 127.0.0.1
的使用)。换句话说,您的计算机只有 process/program (MySQL) 运行ning 在后台。要让您的朋友访问此数据库,您需要满足以下两个条件之一:
- 向全世界公开您的 MySQL 实例(运行ning 在您的计算机上)。
- 这有其局限性。如果您关闭计算机或无法访问互联网,您实际上是在关闭来自世界其他地方的 MySQL 实例。
- 涉及端口转发和排序——这可能很麻烦。
- 使用外部服务(网站提供商)运行 MySQL 数据库实例,互联网上的任何人都可以访问该实例。
- Google:"free mysql provider." 您会发现一些结果允许您创建免费的 MySQL 有限制(通常是大小限制)的数据库。
- 您将连接到
mysql://website.com:33060/path/to/your/database
,而不是连接到 127.0.0.1
方法二最简单。您可以使用在线免费服务来创建您和您的朋友可以访问的 MySQL 服务器。
我在这里制作了一个 python 程序,我想将代码发送给我的朋友,但他无法通过该程序向我的数据库添加值,有没有办法允许他访问。
代码:
from tkinter import *
import mysql.connector as mysql
root = Tk()
def flush(*args):
name = nme.get()
phone = ph.get()
emirate = e_id.get()
con = mysql.connect(host='127.0.0.1', user='root', password='monkey123', database='NZ')
c = con.cursor()
c.execute("Insert into gliy VALUES ('"+name+"','"+str(phone)+"','"+str(emirate)+"')")
c.execute('commit')
con.close()
e_1.delete(0, END)
e_2.delete(0, END)
e_3.delete(0, END)
nme= StringVar()
ph = IntVar()
e_id = IntVar()
label_1 = Label(root,text='Patient Name',fg='blue')
label_2 = Label(root,text='Phone number',fg='blue')
label_3 = Label(root,text='Emirates ID',fg='blue')
label_1.grid(row=0,column=0)
label_2.grid(row=1,column=0)
label_3.grid(row=2,column=0)
e_1 = Entry(root,borderwidth=2,textvariable=nme)
e_2 = Entry(root,borderwidth=2,textvariable=ph)
e_3 = Entry(root,borderwidth=2,textvariable=e_id)
e_1.grid(row=0,column=1,ipady=10,padx=10,pady=10)
e_2.grid(row=1,column=1,ipady=10,padx=10,pady=10)
e_3.grid(row=2,column=1,ipady=10,padx=10,pady=10)
B_1 = Button(root,text='ENTER',command =flush)
B_1.grid(row=4,column=1)
root.mainloop()
错误:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users513\AppData\Local\Programs\Python\Python38-32\lib\site-packages\mysql\connector\network.py", line 509, in open_connection
self.sock.connect(sockaddr)
ConnectionRefusedError: [WinError 10061] No connection could be made because the target machine actively refused it
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users513\AppData\Local\Programs\Python\Python38-32\lib\tkinter\__init__.py", line 1883, in _call_
return self.func(*args)
File "C:/Users/97513/AppData/Local/Programs/Python/Python38-32/new.py", line 14, in flush
con = mysql.connect(host='127.0.0.1', user='root', password='monkey123', database='NZ')
File "C:\Users513\AppData\Local\Programs\Python\Python38-32\lib\site-packages\mysql\connector\__init__.py", line 179, in connect
return MySQLConnection(*args, **kwargs)
File "C:\Users513\AppData\Local\Programs\Python\Python38-32\lib\site-packages\mysql\connector\connection.py", line 95, in _init_
self.connect(**kwargs)
File "C:\Users513\AppData\Local\Programs\Python\Python38-32\lib\site-packages\mysql\connector\abstracts.py", line 716, in connect
self._open_connection()
File "C:\Users513\AppData\Local\Programs\Python\Python38-32\lib\site-packages\mysql\connector\connection.py", line 206, in _open_connection
self._socket.open_connection()
File "C:\Users513\AppData\Local\Programs\Python\Python38-32\lib\site-packages\mysql\connector\network.py", line 511, in open_connection
raise errors.InterfaceError(
mysql.connector.errors.InterfaceError: 2003: Can't connect to MySQL server on '127.0.0.1:3306' (10061 No connection could be made because the target machine actively refused it)
发生这种情况是因为您在计算机上 运行 本地 MySQL(根据您对 127.0.0.1
的使用)。换句话说,您的计算机只有 process/program (MySQL) 运行ning 在后台。要让您的朋友访问此数据库,您需要满足以下两个条件之一:
- 向全世界公开您的 MySQL 实例(运行ning 在您的计算机上)。
- 这有其局限性。如果您关闭计算机或无法访问互联网,您实际上是在关闭来自世界其他地方的 MySQL 实例。
- 涉及端口转发和排序——这可能很麻烦。
- 使用外部服务(网站提供商)运行 MySQL 数据库实例,互联网上的任何人都可以访问该实例。
- Google:"free mysql provider." 您会发现一些结果允许您创建免费的 MySQL 有限制(通常是大小限制)的数据库。
- 您将连接到
mysql://website.com:33060/path/to/your/database
,而不是连接到
127.0.0.1
方法二最简单。您可以使用在线免费服务来创建您和您的朋友可以访问的 MySQL 服务器。