当前位置: 首页 > 知识库问答 >
问题:

从同一网络访问MySql数据库或从不同服务器远程访问

关飞翔
2023-03-14

我有一个应用程序,我必须访问连接到同一网络的所有pc及其MySql数据库,我还想远程连接到服务器。

实际上,我有一个下拉服务列表,每个服务都有一个库名。当我选择一个服务时,我想建立与数据库的连接,它要么位于同一个网络上,要么位于任何远程服务器上。

记住,我知道主机名、用户名、密码和数据库名。我正在使用mysqli_connect函数。

我尝试了网上提供的多种选择,但都是徒劳的。e、 g授予主机和用户访问权限。但是没有找到任何解决办法可以帮助我解决问题。

我尝试绑定地址选项在my.conf文件,但没有解决方案。

这是我的密码

对于远程服务器$con=new mysqli_connect('xxx xxx:3306','username','pass','dbname');

对于本地网络,$con=new mysqli_connect('xxxx xxx xxx:3306','localhost','talent');

错误

mysqli::mysqli();(HY000/2002):连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机没有响应。HY000/1045):用户'用户名'@'localhost'的访问被拒绝(使用密码:是)。

我正在使用windows平台。风8.1

共有3个答案

薛钧
2023-03-14

现在您似乎混合了面向对象和过程方法。如果你想使用对象的方法,mysqli对象应该实例化如下:

$con = new mysqli($host, $username, $password, $dbname, $socket); // all but first parameter are optional

如果要使用过程方法,应按如下方式创建mysqli连接资源:

$con = mysqli_connect($host, $username, $password, $dbname, $socket); // all but first parameter are optional
赵辉
2023-03-14

如果服务器是本地托管数据库,并且可以从本地主机和I连接到它,则无法从远程计算机连接到它,考虑以下选项。

  1. ubuntu中有一个防火墙,您需要打开它,您可以通过在IPtables中授予访问权限来实现这一点

/sbin/iptables-输入-i eth0-p tcp-目标端口3306-j接受,现在我们应该能够从本地计算机登录到服务器:

mysql-h255.112.324.12-uroot-pMyPASSWORD

你需要

作为root用户,使用您最喜欢的编辑器打开/etc/mysql/my.cnf,查找[mysqld]部分,并在其中查找bind address关键字。这通常设置为127.0.0.1——将其更改为与您的“正常”IP地址匹配保存文件,并重新加载服务(例如,使用服务mysql重新启动)

在mydb上授予所有。*到root@'%'由'MyPASSWORD'标识;

请在此处查找更多信息:http://web.archive.org/web/20120930214828/http://chosencollective.com/technology/how-启用对mysql的远程访问

易奇希
2023-03-14

我猜你想访问安装在不同计算机上的mysql数据库,与你的计算机在同一个网络上,也在一些远程服务器上。

您需要的是安装mysql服务器的所有计算机(包括远程服务器)的IP地址。在每台这样的计算机上,都应该为您在“new mysqli_connect()”中使用的计算机的IP地址和mysql用户启用mysql服务器远程访问。请参见本教程。

也如fvu所说,检查php留档的mysqli_connect功能。

更新了什么是SSH?1。SSH是SecureSHell
2。它只不过是一个远程登录工具或程序(像telnet一样,但以安全的方式)
3。远程登录是指从您的计算机以该计算机的用户身份登录到其他计算机(称为远程计算机)
4。通过ssh成功登录到远程计算机后,可以代表您登录的用户在该远程计算机上键入命令
5。当你坐在你的电脑前,看着远程计算机上的命令提示(Linux和MAC终端)屏幕。br>6。您在此处键入的内容将反映在此处为了让您的知识让您了解问题:
1。当您在计算机上安装XAMPP或WAMP时,它也会安装MySQL服务器
2。MySQL服务器是一个在后台运行的进程,我们可以请求它执行数据库操作,如选择、更新等。
3。我们通常在php中使用“mysql\u connect”或“mysqli\u connect”来实现这一点
4。MySQL服务器可以有许多用户,不同的用户具有不同的权限。因此,MySQL管理员用户(即root用户)可以控制用户允许和不允许的内容
5。现在,在连接到mysql服务器进程时,我们需要指定用户凭据。您在mysqli_connect函数中指定的现在让我解释一下为什么会出现错误:
1。您使用的用户凭据不存在或不正确,或者用户无权远程连接到MySQL服务器进程。i、 e.从安装了MySQL服务器的其他计算机。在您的情况下,从您的计算机到计算机A或计算机B或远程服务器
2。另一个原因可能是远程计算机的防火墙设置解决方案:
1。对于计算机A和计算机B,您不需要ssh,可以直接转到计算机并在其上打开命令提示符,然后键入命令
2。但对于远程计算机,您需要使用ssh
3。现在另一个问题是您正在使用Windows,所以ssh程序将不可用
4。您需要下载putty程序。它针对windows的ssh实现。与ssh相同,但名称不同
5。学习putty教程以连接到远程服务器
6。然后,您可以使用本教程向您在mysqli_connect函数中使用的mysql用户授予远程登录访问权限

 类似资料:
  • 我有一个有机架空间的服务器。我想从我的本地计算机命令行访问数据库。 我试着说: 但它给出了一个错误: 错误2003(HY000): 无法连接到“my.application.com”上的MySQL服务器(10061) 导致此错误的原因以及如何连接到远程数据库?

  • 问题内容: 我运行基于节点映像的Docker容器(Windows的Docker快速入门终端) 我启动节点客户端(在端口3000上)和节点(基于Express)的服务器(在3009 端口上)。客户端通过AJAX调用访问REST服务器。 它可以完美地从主机运行(客户端访问localhost:3009并返回结果)。我可以拨打:3009,然后再次得到正确的结果。 但是当我构建并运行docker image

  • 问题内容: 我正在使用JBoss运行客户端/服务器应用程序。 如何连接到服务器JVM的MBeanServer?我想使用MemoryMX MBean来跟踪内存消耗。 我可以使用JNDI查找连接到JBoss MBeanServer,但是java.lang.MemoryMX MBean没有在JBoss MBeanServer中注册。 编辑:要求是从客户端以编程方式访问内存使用情况。 问题答案: 与JBo

  • 例如,我有两个心率监视器与我的平板电脑配对。我正在使用这样的代码来获取HRM设备列表: 然后,我在GUI中显示一个列表框,其中包含从设备[I]获取的设备名称。名称例如,我选择索引为0的设备。然后我可以访问it人力资源服务和人力资源管理特征: 除了心率,我还需要电池状态。如何访问同一(已选择)设备的电池服务?

  • 我创建了一个Amazon Linux 2实例,在其中部署了一个用systemd启动的Java程序。Java程序是一个Vertex shell应用程序,它使用Apache Mina在端口2000上启动SSH服务器。应该可以通过两种方式连接到SSH服务器:公钥或密码验证。 在端口22上进行经典ssh身份验证以访问我的amazon实例后,我可以使用密码auth本地连接到在端口2000上运行的java s

  • 我正在查看一个Rails应用程序,它需要建立远程SSH会话(SSH隧道?)从Heroku到远程Mysql数据库,作为后台ActiveRecord会话的一部分。目标是通过此通道在不同时间将数据迁移到应用程序中。无法通过web连接到远程mysql数据库。 几个问题: 赫鲁库允许SSH关闭他们的测功机吗? 这样做的缺点是什么? 我是否必须担心 SSH 会话持久性(作业可能需要 1 小时)? 最后,如何配