为什么本地连接不上数据库而远程可以.

为什么本地连接不上数据库而远程可以.,第1张

1、你确定服务其上的配置文件没有语法错误吗?你可以把你的配置文件放到服务器上试一下

2、因为你的问题中没有说清楚是几台服务器,如果是一台服务器连不上另一台服务器上的数据库那么你可以看看服务器的访问权限设置,是否有限制IP或者MAC地址之类的设置

基本我之前遇到的也就是这两种情况了,希望能帮到你。

以sqlserver2000为例。

一、在本机电脑打开sql

server

2000的企业管理器;

1、新建SQL注册

2、添加本站的SQL数据库所在服务器IP,注:由于购买的数据库类型不同所在服务器IP也会不同,请在数据库管理的基本信息中查看,以保证正确。

3、选择第二项“系统管理给我分配的SQL

server登录信息”

4、输入您在本站开通的MSSQL数据库的用户名和密码

5、存放位置,没必要修改,当然也可以选第二项新建一个组

6、点完成后将进行远程数据库连接,如果刚才所设置的参数正确并且本机的防火墙充许了1433端口将会连接成功。

二、打开本机电脑上的“开始-Microsoft

SQL

Server

2000

-企业管理器”在SQL2000企业管理器中会看到刚才新注册的数据库和本站服务器IP

1、双击前面的+号进行远程数据库服务器连接,连接成功后会看到数据库结构

2、点开

数据库

前面的+号将展开远程服务器上的数据库列表,从中找到数据库

3、至此已经成功连接到远程数据库,就可以像在本机 *** 作一样去管理数据库了

具体步骤:

1首先确认数据库是不是正常启动了。

2如果是第一次安装,你的 *** 作系统是什么?vista和win7装sql2000不一定能装上,需要2005,而且如果是win7家庭版很可能出现数据库和软件连不上。

3如果是xp,以前是不是装过数据库后来卸载了,那么卸掉sql清除干净注册表,重新安装sql,最好用完整版,不要使用msde。

4如果是用了一段时间,很可能是杀毒软件误杀数据库文件,卸掉杀毒软件,在管理里面启动下数据库,看能否启动,如果还能启动。再启动速达看能否连接上。

5如果数据库已经无法启动,将数据作出备份,重装数据库吧。

6如果是本机连接没问题,其他连不上的话,关闭服务器和客户端window自带防火墙,数据库打sp4补丁,开启guest用户。

分析:这是典型的socket没有正确设置的情况。

连接MySQL数据库有两种方式:TCP/IP(一般理解的端口的那种)和Unix套接字(一般叫socket或者sock)。大部分情况下,可以用localhost代表本机127001,但是在MySQL连接时,二者不可混用,而且MySQL中权限设置中localhost与127001也是分开设置的。当设置为127001时,系统通过TCP/IP方式连接数据库;当设置为localhost时,系统通过socket方式连接数据库。

解决:首先要看本机MySQL的socket套接字文件在哪里,查看命令是:

mysqld --verbose --help | grep socket

输出结果显示套接字文件的位置,比如:这台服务器显示的是

socket /var/run/mysqld/mysqldsock

然后修改php的配置文件phpini与之对应起来就好了。

找到这一项:

mysqldefault_socket =

一般来说这一项都是空的,改成:

mysqldefault_socket = /var/run/mysqld/mysqldsock

这里应写上一步查询到的文件,根据你的情况设置。至此php配置就修改好了,如果是CLI(命令行)方式或者CGI方式的话,立即就生效,如果是FASTCGI方式,需要重启一下fastcgi进程。

解决办法参考(网上)

一:

我觉得可能是楼主的某些程序写的有问题,可能占用了连接而没有断开。另外,楼主的mysql服务器是不是安装有防火墙?特别是诺顿防火墙,我遇到过,明明是允许我的ip访问被保护的服务器,可是一段时间后,挪顿就认为我的ip是非法攻击,自动就给我ip封了,要么等20分钟(默认的规则),要么从新启动服务器就好了。。。。。。。

电脑常识

二:

您使用的是windows *** 作系统,此错误与一个注册表键值tcptimedwaitdelay有关。减小windows中tcptimedwaitdelay时间可解决此类问题,默认情况下为240(未设置的情况下也是这个数值)。

此项设置需要到注册表如下位置进行设置:hkey_local_machinesystemcurrentcontrolsetservicestcpipparameterstcptimedwaitdelay

如果注册表中没有tcptimedwaitdelay这个项目,请增加这个项目,并设置为双字节(dword)类型。数值设置为30

~

60

之间即可。

数据仓库

三:

服务器ftp测试完毕,重新启动了一下。就一切稳定了。

不过仍然有几个问题没有搞清楚。心里不放心。

1。上周五的时候,ftp压力并不大的时候,30分钟在线统计900多人的时候,10%的比率出现mysql连接失败的10048错误。

2。我当时使用的连接方法是

mysql_connect()。服务器iis+php+isapi的方式。参考了一些资料以后,我当时马上把

mysql_connect()

方法都改成了

mysql_pconnect()

方法,当时,问题看上去是解决了。

3。周六,服务器开始ftp压力测试。15%的比率出现

mysql连接失败的

10048

10055

错误。比上次多了个10055错误。

关键不知道10048

10055错误代码具体代表的错误信息。应该说,问题仍然没有找到确切的答案。

人工智能

我开了serv-u,有4个socket连接,mysql马上挂了

数据挖掘研究院

#include <afxdbh>

1、建立CDatabase对象与数据库绑定:

CDatabase m_db;

CString strDriver = _T("MICROSOFT ACCESS DRIVER (mdb)");

CString strDsn;

CString strFile = _T("c:\\PartsManagermdb");

strDsnFormat(_T("ODBC;DRIVER={%s};UID=sa;PWD=;DBQ=%s"),strDriver,strFile);

if(!m_dbOpen(NULL,false,false,strDsn))

{

AfxMessageBox(_T("连接数据库失败!"));

return FALSE;

}

2、建立与m_db绑定的CRecordset对象,并逐条读取记录:

CRecordset rs(&m_db);

CString strSql = _T("select from partsdata");

CString strData;

CString str;

if(!rsOpen(CRecordset::forwardOnly,strSql,CRecordset::readOnly))

{

AfxMessageBox(_T("打开数据表失败!"));

return;

}

while(!rsIsEOF())

{//逐个读取记录字段

rsGetFieldValue(_T("time"),strData);//读取数据库内容的代码

m_listInfoInsertItem(0,strData);

rsGetFieldValue(_T("value"), strData);

rsGetFieldValue(_T("uplimit"), strData);

m_listInfoSetItemText(0,UPLIMIT,strData);

rsGetFieldValue(_T("lowlimit"), strData);

m_listInfoSetItemText(0,LOWLIMIT,strData);

rsGetFieldValue(_T("passed"), strData);

……

rsMoveNext();

}

rsClose();

该修改哪里自己知道吧?

以上就是关于为什么本地连接不上数据库而远程可以.全部的内容,包括:为什么本地连接不上数据库而远程可以.、在本机怎样连接服务器上的sql server数据库、系统出现“无法连接数据库,请检查SQL服务器是否启动或网络是否正常”怎么办等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10148747.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存