被连接方(mysql所在方)的工作
- 打开cmd,终端输入mysql -u root -p,回车,输入mysql的密码,回车,
- 对本地的某个用户授权,以使所有机器都可访问该用户下的数据库
use mysql; grant all privileges on * . * to 'user'@'%' identified by '1234' with grant option; flush privileges;
其中,use mysql是指针对某个数据库,这里要换成自己的要被别人访问的数据库
grant是授权命令,@符号之前的'user'是用户名,如果对root用户授权,即为'root',@后边是对哪个电脑授权,%是通配符,表示对所有授权,如果要指定,则输入希望连接到本地Mysql的另一台机器的IP地址
查询自己电脑的IP地址
如果希望其他电脑远程连接自己本地的mysql,则需要将自己的IP地址告知对方,并且要确保两人在同一局域网下。
- 第一种方法
在设置-网络和Internet-状态-属性中查看
- 第二种
在终端输入ipconfig查看
设置防火墙
这一步很重要,不设置的话,别人是无法访问的
- 通过控制面板进入系统安全
- 进入后选择:
- 选择高级设置:
- 选择入站规则
- 选择新建规则,选择端口:
- 然后设置端口号为mysql的端口号,如果没改过就是3306
- 一直下一步到最后
连接方如何连接
Navicat连接--推荐
选择mysql:
连接名任意取,主机名就是要连接电脑的IP地址,用户名和密码就是刚才设置的授权了所有用户的用户。
Python连接
class Database:
# 设置数据库连接
host=' ' #要连接mysql的IP地址
port=306
user='root'
password = "123456"
def __init__(self,db):
connect=pymysql.connect(host=self.host,port=self.port,user=self.user,password=self.password,db=db)
self.cursor = connect.cursor()
# 执行sql语句
def execute(self,command):
try:
# 执行command中的sql语句
self.cursor.execute(command)
except Exception as e:
return e
else:
return self.cursor.fetchall()
host中填写被连接方的ip地址,port如果被连接的是root则一般为3306
可以测试是否连接成功:
sql = Database("xmsx") # 数据库名
result = sql.execute(f"SELECT company FROM companyandjob WHERE job_name='阿里' ")
print(result)
参考文章:
如何访问局域网下另一台电脑的mysql_两台电脑公用一个mysql数据库csdn-CSDN博客