如何实现服务器远程利用当地数据库

打印 上一主题 下一主题

主题 897|帖子 897|积分 2691

如何实现服务器远程利用当地数据库

近来在整项目实训,有些模子比力大,放在本机上跑显然不太实际,那就必然须要放到服务器上跑,但是跑出来的数据终归要放到当地数据库上才能实现快速访问,这里就有一个问题,那就是该怎么实现对当地数据库的远程利用,也是花了的不少时间,在这里记录一下解决办法。
1、修改MySQL配置文件



  • 找到MySQl的文件目次,里面会有一个名为“my.ini”文件,如果利用体系是win的话,路径一样平常都差不多,这里放一下我的:

  • 用记事本可以打开,但是没有办法修改,因此必须先用管理员权限打开记事本,然后在记事本内再打开该文件,最后对其举行修改生存,修改只须要找到[mysqld]部分,然后在下面添加一条:
   bind-address:0.0.0.0
  这答应MySQL监听全部网络接口的连接请求。
2、在MySQL中创建用户并授权



  • win+R输入cmd回车打开终端,输入:
  1. mysql -u root -p
复制代码
之后输入你的密码即可开始对数据库举行利用,具体输入我下面列出的这几行下令即可:
  1. CREATE USER 'username'@'服务器IP地址' IDENTIFIED BY 'password';
  2. GRANT ALL PRIVILEGES ON databasename.* TO 'username'@'服务器IP地址';
  3. FLUSH PRIVILEGES;
  4. FLUSH PRIVILEGES;
复制代码
这上面的“服务器IP地址”可以具体为你的服务器的外网IP,如果不清楚大概没有外网IP,可以用%替代,表现答应任何IP。密码自己设置一下即可。


  • 重启MySQL服务
    可以输入以下下令重启MySQL服务:
  1. service mysql restart
复制代码
也可以在“开始”中搜索“服务”,打开后找到MySQL80,右击重启即可。
3、防火墙设置

这一步主要是确保你的当地网络的防火墙答应从服务器IP地址到当地数据库端口的入站连接。


  • 控制面板 -> Windows Defender 防火墙 -> 高级设置 -> 入站规则->新建规则。
  • “规则范例”选择“端口”。
  • “协议和端口”选择“TCP”,“特定当地端口”,输入“3306”。
  • “利用”选择“答应连接”。
  • 背面除了自己设置一个规则名字,就正常点击下一页即可。
4、服务器远程利用

一旦你的当地MySQL数据库配置好接受来自服务器的远程连接,并且用户权限和网络安全设置都已就绪,服务器上的应用就可以开始连接并利用这个数据库了。下面是服务器端举行数据库利用的一样平常步骤,包罗如何利用Python编写代码来利用远程MySQL数据库。
步骤1: 在服务器上安装MySQL连接库

如果你筹划利用Python来利用MySQL,你须要安装一个MySQL客户端库。mysql-connector-python 是一个流行的选择,可以直接通过pip安装:
  1. pip install mysql-connector-python
复制代码
步骤2: 编写Python代码连接并利用数据库

在你的服务器端应用中,利用Python和mysql-connector-python库来连接到你的当地MySQL数据库并执行SQL语句。下面是一个基本示例:
  1. import mysql.connector
  2. def connect_and_query():
  3.     try:
  4.         # 连接到MySQL数据库
  5.         connection = mysql.connector.connect(
  6.             host='你的本地数据库的公网IP地址',
  7.             user='remote_user',
  8.             password='your_password',
  9.             database='你的数据库名'
  10.         )
  11.         
  12.         if connection.is_connected():
  13.             print("Connected to MySQL Server")
  14.             
  15.             # 创建一个cursor对象,用于执行查询
  16.             cursor = connection.cursor()
  17.             
  18.             # 执行查询
  19.             cursor.execute("SELECT * FROM your_table_name")
  20.             
  21.             # 获取查询结果
  22.             records = cursor.fetchall()
  23.             print("Total number of rows in table: ", cursor.rowcount)
  24.             
  25.             # 打印每行的数据
  26.             for row in records:
  27.                 print(row)
  28.     except mysql.connector.Error as e:
  29.         print("Error reading data from MySQL table", e)
  30.    
  31.     finally:
  32.         if connection.is_connected():
  33.             cursor.close()
  34.             connection.close()
  35.             print("MySQL connection is closed")
  36. # 调用函数
  37. connect_and_query()
复制代码
5、IP映射

实在到了上一步,在服务器上运行脚本之后会发现还是没有办法连接到当地数据库,这是为什么呢?学过计网的同学应该都知道,我们的电脑都处在一个个局域网内,我们的主机IP都是内网IP,处于同一个内网下的主机可以通过内网IP相互访问,内网的主机也可以访问外网IP,但是外网无法通过内网IP访问我们的主机,这就是问题所在了。解决这个问题有两种办法:


  • 如果你的服务器和主机都分配有了ipv6地址,那么可以直接通过ipv6地址访问,由于这个ip绝对是唯一的。但是由于ipv6普及度并没有那么高,这个很难行得通。
  • 利用NAT技能举行IP穿透。
接下来主要讲一讲第二种方法,NAT技能就是将你的主机在局域网中的IP和端口映射到一个特定的外网IP和端口上,这样外面就可以通过这个特定的外网IP和端口号来间接访问你的内网IP和端口号。市面上有很多软件都可以实现,这里我用的是贝锐花生壳,免费的:


  • 下载之后,将当地的IP地址和3306端口写上,他就会给你映射后的IP地址和端口号,我的如下:

  • 接下来再改一改数据库远程利用的代码,将映射后的端口号也加上:
  1. connection = mysql.connector.connect(
  2.             host='映射后的IP地址',
  3.             port='映射后的端口号',
  4.             user='remote_user',
  5.             password='密码',
  6.             database='数据库名'
  7.         )
复制代码
现在就可以正常连接并利用了!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

大号在练葵花宝典

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表