问题
I made a python program here and i wanted to send the code to my friend and he was unable to add values through the program to my database, is there a way i can allow his access.
Code:
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()
ERROR:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\97513\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:\Users\97513\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:\Users\97513\AppData\Local\Programs\Python\Python38-32\lib\site-packages\mysql\connector\__init__.py", line 179, in connect
return MySQLConnection(*args, **kwargs)
File "C:\Users\97513\AppData\Local\Programs\Python\Python38-32\lib\site-packages\mysql\connector\connection.py", line 95, in _init_
self.connect(**kwargs)
File "C:\Users\97513\AppData\Local\Programs\Python\Python38-32\lib\site-packages\mysql\connector\abstracts.py", line 716, in connect
self._open_connection()
File "C:\Users\97513\AppData\Local\Programs\Python\Python38-32\lib\site-packages\mysql\connector\connection.py", line 206, in _open_connection
self._socket.open_connection()
File "C:\Users\97513\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)
回答1:
This is happening because you are running MySQL locally on your computer (as given by your use of 127.0.0.1
). In other words, you have a process/program (MySQL) running in the background of only your computer. For your friend to have access to this database, you will need to either of two things:
- Expose your MySQL instance (running on your computer) to the world.
- This has its limitations. If you turn off your computer, or don't have access to the internet, you are effectively shutting down the MySQL instance from the rest of the world.
- Involves port-forwarding and the sort -- which can be cumbersome.
- Use an external service (website provider) to run an instance of an MySQL database that can be accessed by anyone on the internet.
- Google: "free mysql provider." You'll find a few results that allows you to create free MySQL databases with limitations (usually size limitation).
- Instead of connecting to
127.0.0.1
, you would connect to amysql://website.com:33060/path/to/your/database
Method 2 is the easiest. You can use free services online to create a MySQL server that you and your friend can access.
来源:https://stackoverflow.com/questions/61371718/how-to-give-permission-to-other-pc-to-add-data-to-my-database-in-mysql-in-my-com