标签: error

连接失败Sql server错误10061总结

前几天刚装的SQL SERVER 2005用来做,Project Server的后台数据库,今天重启“SQL Server (MSSQLSERVER)”服务时不能启动,提示如下:

本地计算机上的MSSQLSERVER服务启动后又停止了。一些服务自动停止,如果它们没有什么可做的

日志中有如下提示:

2008-01-30 07:51:06.43 服务器 A self-generated certificate was successfully loaded for encryption.
2008-01-30 07:51:06.43 服务器 错误: 17182,严重性: 16,状态: 1。
2008-01-30 07:51:06.43 服务器 TDSSNIClient initialization failed with error 0x7e, status code 0x60.
2008-01-30 07:51:06.43 服务器 错误: 17182,严重性: 16,状态: 1。
2008-01-30 07:51:06.43 服务器 TDSSNIClient initialization failed with error 0x7e, status code 0x1.
2008-01-30 07:51:06.43 服务器 错误: 17826,严重性: 18,状态: 3。
2008-01-30 07:51:06.43 服务器 Could not start the network library because of an internal error in the network library. To determine the cause, review the errors immediately preceding this one in the error log.
2008-01-30 07:51:06.43 服务器 错误: 17120,严重性: 16,状态: 1。
2008-01-30 07:51:06.43 服务器 SQL Server could not spawn FRunCM thread. Check the SQL Server error log and the Windows event logs for information about possible related problems.

重新启动操做系统还是不行,几经周折终于找到了问题所在,是昨天有人把“VIA协议”给启用了,停用“VIA协议”问题解决。

“VIA协议”停用方法:开始->程序->Microsoft SQL Server 2005->配置工具->SQL Server Configuration Manager ->打开后找到”SQL Server 2005 网络配置”->MSSQLSERVER 属性的协议 在右边的属性框中把“VIA协议”禁用即可!

连接失败 Sqlstate :’01000′ Sql server错误:10061 [Microsoft][ODBC Sql Server Driver][TCP/IP Sockets] c
2011-07-20 15:13 737人阅读 评论(1) 收藏 举报
连接失败
Sqlstate :’01000′
Sql server错误:10061
[Microsoft][ODBC Sql Server Driver][TCP/IP Sockets] connectionOpen(Connect())
连接失败:
Sql State:’08001′
Sql Server错误:17
[Microsoft][ODBC Sql Server Driver][TCP/IP Sockets]SQL Server 不存在或访问被拒绝。
解决办法:->
网上有一些常规解决办法我这里就不在重复了,我在实际使用中遇到这个问题 ,参考网上的解决办法都不能实现,后来无意中解决了,现在把解决办法贴出来,很简单的
———————————>
客户端配置—-把“动态决定端口”勾选去掉,手工设置1433端口就 ok 了

1:去掉本系统的防火墙和其它一切防火墙。
2:在客户端执行 telnet 服务器ip 1433,如果提示错误,则sql的缺省端口被禁止-此步骤可忽略
3:查看服务器的安全策略,打开即可。
管理工具-本地的安去策略-ip安全策略-双击新ip安全策略-规则-1433-筛选器操作-允许。即可

错误有以下可能:
a.SQL Server名称或者IP地址拼写有误
b.服务器端网络配置错误
c.客户端网络配置错误

解决步骤:
1.检查网络物理连接
ping 服务器名称 或者 ping 服务器ip地址
===》ping 服务器ip地址失败 :说明物理连接出问题,需要检查硬件设备;需要注意将防火墙关掉,因为它也许会屏蔽你的PING命令
===》ping 服务器ip地址成功 ping 服务器名称失败:说明服务器名称有问题。如果服务器和客户端不在同一局域网内,很可能无法直接使用服务器名称标志服务器。

2.使用Telnet命令检查SQL Server服务器工作状态
Telnet 服务器IP地址 14323(默认端口号)
===>如果有“无法打开连接”的信息,说明你的SQL Server服务没开启,或者你的TCP/IP协议没有启用,或者你的服务器没有在端口1433上监听

3.检查服务器端的网络配置,看是否启用命名管道,是否启用TCP/IP协议
这个可以在不同版本的SQL Server自带的工具管理器里找到,比如2000是服务器网络使用工具 2008是SQL Server配置管理器

4.检查客户端的网络配置,查看使用的协议
一般需要启用命名管道;

文章摘要显示出错

这两天把博客给恢复了,可是主页一直是有空白的,在本地试的时候没有问题,以为是主机的网络问题,一直没在意。后来发现网通访问我的博客速度也快了,但是就是主页卡在那里无法显示,悲催啊。看了下已经加载的页面,感觉是主题中的index.php那点的问题。因为加载到了文章摘要那里就无法显示了。尝试的删去显示摘要的代码后,主页正常了。可是摘要又无法显示。查了一下用的那些代码,那几个函数strip_tags,str_replace,mb_strimwidth,mb_strlen。发现需要开启mb_string 模块,mb_strimwidth函数才能使用。真悲催,原来是主机缺少了这个,真是用原生的kloxo问题不少呀,还是需要折腾。

操作方法:
SSH登陆,运行yum -y install php-mbstring,开始安装,结束之后reboot重启。

中间查询了一下php.ini,发现有好多,目前还不知道是怎么回事儿。大体位置如下:
/home/httpd/域名名称/php.ini
/usr/lib/kloxophp/zend/etc/php.ini
/usr/local/lxlabs/ext/php/etc/php.ini
/usr/local/lxlabs/kloxo/httpdocs/htmllib/filecore/php.ini
/usr/local/lxlabs/kloxo/httpdocs/htmllib/filecore/lxetc/misc/php.ini
查询方法
find / -name php.ini

对于不是自己架设的童鞋,在网上找到一种折中方法,不知道管用不,转载过来。

没有开启 mb_string 也能使用 mb_strimwidth() 函数

并不是所有主机都默认支持mb_strimwidth()这个函数的,前提是要开启 mb_string 这个模块。那如果主机没有开启 mb_string 就不能使用 mb_strimwidth() 函数了吗?有没有变通的办法呢?答案当然是 YES,于是也就有了本文。

先在 WordPress 主题的 functions.php 文件中添加如下代码:

function dm_strimwidth($str ,$start , $width ,$trimmarker ){
    $output = preg_replace('/^(?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$start.'}((?:[\x00-\x7F]|[\xC0-\xFF][\x80-\xBF]+){0,'.$width.'}).*/s','\1',$str);
    return $output.$trimmarker;
}

接下来在需要的地方调用如下:

post_content),0,200,'......[阅读全文]');?>

用过 mb_strimwidth() 函数的朋友已经发现了,这个新建的函数和 mb_strimwidth() 的用法是一模一样的,如果你的主机不支持 mb_string 扩展库,那可以试试本文的方法哟。

[转]再谈PHP开发者常犯的10个MySQL错误

最近看到一篇文章:《PHP开发者常犯的10个MySQL错误》,发现文中不少内容陈旧,随着时间推移技术发展变化而变得不适用。为了防止误导新手,特本着与时俱进的精神写出此文,绝非对原文作者的不尊重。

1.使用MyISAM而不是InnoDB
完全错误,反驳理由:
首先原文说MyISAM是默认使用的,而实际上到了MySQL 5.5.x,InnoDB已经成为了默认的表引擎。

另外,简单的使用InnoDB不是解决所有问题的方法,盲目的使用甚至会使应用性能下降10%乃至40%。

最佳方法还是针对具体业务具体处理,例如论坛中版块表,新闻分类表,各种码表等长时间不操作的表,还是要用性能优异的MyISAM引擎。
而需要用到事务处理的例如用户、账目、流水等严格要求数据完整性和时序性的,则需要用InnoDB引擎,并且应用也要用好事务处理机制。当然,事务处理必然要带来大量的性能损耗,但是这在简单高并发应用上是必须的。

最后,外键约束在公共web互联网应用上一般是不用的,因为他会严重影响性能。数据完整性还是靠程序员或者应用架构本身的健壮来维护。而正规的第三范式只是在企业内部MIS系统和12306这种网站上使用。

2.使用PHP的mysql方法
不完全错,但要酌情选用:
mysqli固然好,但是不是所有的服务器都为PHP编译了mysqli的支持。
当你的应用如果是能确定只用自己部署的服务器,而应用也是完全自己开发,则mysqli是最好的选择。
但是一旦你的应用有可能部署在虚拟主机或者由其他人部署(例如分布式项目),还是老老实实使用mysql函数集吧,好好封装一下或者使用成熟框架杜绝sql注入。

3.不过滤用户输入
这一点不用说了,要么MagicQuote,要么选用成熟框架。sql注入老话题了。

4.不使用UTF-8
大部分情况下对,但也要认真考虑:
要知道,一个UTF-8字符占3个字节,所以比GBK等其他编码的文件大33%。换句话说,相同的网页用UTF-8编码如果是100KB,那么换成GBK编码则只有66KB。所以即便你的PHP确定要用UTF-8,那么前端页面也要根据情况选择需要的编码。但是,如果PHP用UTF-8,前端模版是GBK,再加上模版引擎不强大,那么转码工作够你受的。所以尽可能的选用自己需要的编码,而不是简单的选择UTF-8了事。
最后啰嗦一句:UTF-8下:strlen(“我”)=3,而GBK下:strlen(“我”)=2

5.该用SQL的地方使用PHP
同样酌情考虑:
例如,有些人习惯在建表时,默认值填写CURRENT_TIMESTAMP,用来达到注册时间、发帖时间的效果。 或者在时间判断的SQL语句中,写类似SELECT x FROM tab1 WHERE regdate < UNIX_TIMESTAMP()。那么我只能说,你为系统埋下了很隐蔽的BUG。因为数据库和应用往往不在同一台机器上,时间很容易出现偏差。当你一套应用的时间参照不准确时,就会出现很大的问题。 正确做法是:不要使用MySQL的任何时间函数,而是在应用里计算时间。如果是分布式应用,一定要有时间服务器来统一管理时间。 而文中说的一些MySQL数学函数 ,也是要慎用。因为在大型应用中,数据库的负担往往是最大的,而复杂的WHERE语句又是造成慢查询的元凶。所以,要把计算尽可能的放在廉价的、不影响全局稳定的应用服务器上,而不是核心数据库上。 6.不优化查询 这点也不用说了,大型应用上甚至不允许使用各种JOIN,哪怕生写两条查询,查回来在用PHP合并数据。 7.使用错误的数据类型 INT,TinyINT,VARCHAR,CHAR,TEXT这些字段类型的合理选用无可厚非。 而Date、DateTime、TIMESTAMP这三种类型,在大型应用中是绝对不可以使用的,而是要用INT(10) UNSIGNED代替。 一个是性能,另外就是应用中尤其是PHP对UNIX_TIMESTAMP时间戳的转化实在太方便了。用Date要输出各种时间格式反而麻烦。 8.在SELECT查询中使用* 共勉 9.索引不足或者过度索引 索引是必须的,但是如果索引都解决不了的查询,考虑memcache或者nosql解决方案吧。 10.不备份 这条是作者凑数么? 11.另外:不考虑其他数据库 这条相当正确。应用中不仅要针对应用选择其他数据库,甚至还要针对具体的业务类型,在同一套应用中并行使用多种数据库。哪怕不是数据库,而是其他各种缓存、内存存储等解决方案。

[转]PHP开发者常犯的10个MySQL错误

新闻来源:cnw
数据库是Web大多数应用开发的基础。如果你是用PHP,那么大多数据库用的是MySQL也是LAMP架构的重要部分。PHP看起来很简单,一个初学者也可以几个小时内就能开始写函数了。但是建立一个稳定、可靠的数据库确需要时间和经验。下面就是一些这样的经验,不仅仅是MYSQL,其他数据库也一样可以参考。

1.使用MyISAM而不是InnoDB

MySQL有很多的数据库引擎,单一般也就用MyISAM和InnoDB。

MyISAM 是默认使用的。但是除非你是建立一个非常简单的数据库或者只是实验性的,那么到大多数时候这个选择是错误的。MyISAM不支持外键的约束,这是保证数据 完整性的精华所在啊。另外,MyISAM会在添加或者更新数据的时候将整个表锁住,这在以后的扩展性能上会有很大的问题。

解决办法很简单:使用InnoDB。

2.使用PHP的mysql方法

PHP从一开始就提供了MySQL的函数库。很多程序都依赖于mysql_connect、mysql_query、mysql_fetch_assoc等等,但是PHP手册中建议:

如果你使用的MySQL版本在4.1.3之后,那么强烈建议使用mysqli扩展。

mysqli,或者说MySQL的高级扩展,有一些优点:

有面向对象的接口

prepared statements(预处理语句,可以有效防止SQL-注入攻击,还能提高性能)

支持多种语句和事务

另外,如果你想支持多数据库那么应该考虑一下PDO。

3.不过滤用户输入

应该是:永远别相信用户的输入。用后端的PHP来校验过滤每一条输入的信息,不要相信Javascript。像下面这样的SQL语句很容易就会被攻击:

$username = $_POST[“name”];

$password = $_POST[“password”];

$sql = “SELECT userid FROM usertable WHERE username=?$username?AND password=?$password?;”; // run query…

这样的代码,如果用户输入”admin’;”那么,就相当于下面这条了:

SELECT userid FROM usertable WHERE username=?admin?;

这样入侵者就能不输入密码,就通过admin身份登录了。

4.不使用UTF-8

那些英美国家的用户,很少考虑语言的问题,这样就造成很多产品就不能在其他地方通用。还有一些GBK编码的,也会有很多的麻烦。

UTF-8解决了很多国际化的问题。虽然PHP6才能比较完美的解决这个问题,但是也不妨碍你将MySQL的字符集设置为UTF-8。

5.该用SQL的地方使用PHP

如果你刚接触MySQL,有时候解决问题的时候可能会先考虑使用你熟悉的语言来解决。这样就可能造成一些浪费和性能比较差的情况。比如:计算平均值的时候不适用MySQL原生的AVG()方法,而是用PHP将所有值循环一遍然后累加计算平均值。

另外还要注意SQL查询中的PHP循环。通常,在取得所有结果之后再用PHP来循环的效率更高。

一般在处理大量数据的时候使用强有力的数据库方法,更能提高效率。

6.不优化查询

99%的PHP性能问题都是数据库造成的,一条糟糕的SQL语句可能让你的整个程序都非常慢。MySQL的EXPLAIN statement,Query Profiler,many other tools的这些工具可以帮你找出那些调皮的SELECT。

7.使用错误的数据类型

MySQL提供一系列数字、字符串、时间等的数据类型。如果你想存储日期,那么就是用DATE或者DATETIME类型,使用整形或者字符串会让事情更加复杂。

有时候你想用自己定义的数据类型,例如,使用字符串存储序列化的PHP对象。数据库的添加可能很容易,但是这样的话,MySQL就会变得很笨重,而且以后可能导致一些问题。

8.在SELECT查询中使用*

不要使用*在表中返回所有的字段,这会非常的慢。你只需要取出你需要的数据字段。如果你需要取出所有的字段,那么可能你的表需要更改了。

9.索引不足或者过度索引

一般来说,应该索引出现在SELECT语句中WHERE后面所有的字段。

例如,假如我们的用户表有一个数字的ID(主键)和email地址。登录之后,MySQL应该通过email找到相应的ID。通过索引,MySQL可以通过搜索算法很快的定位email。如果没有索引,MySQL就需要检查每一项记录直到找到。

这样的话,你可能想给每一个字段都添加索引,但是这样做的后果就是在你更新或者添加的时候,索引就会重新做一遍,当数据量大的时候,就会有性能问题。所以,只在需要的字段做索引。

10.不备份

也许不常发生,但是数据库损毁,硬盘坏了、服务停止等等,这些都会对数据造成灾难性的破坏。所以你一定要确保自动备份数据或者保存副本。

11.另外:不考虑其他数据库

MySQL可能是PHP用的最多的数据库了,但是也不是唯一的选择。 PostgreSQL和Firebird也是竞争者,他们都开源,而且不被某些公司所控制。微软提供SQL Server Express,Oracle有10g Express,这些企业级的也有免费版。SQLite对于一些小型的或者嵌入式应用来说也是不错的选择。

odbc数据源驱动程序丢失或出错

odbc数据源驱动程序丢失或出错,可以用以下办法解决

%systemroot%\system32\ 搜索 是否含有以下文件:
odbc16gt.dll
odbc32.dll
odbc32gt.dll
odbcad32.exe
… …
如果有这些文件,执行以下批处理文件:
odbcconf.exe /S /Lv odbcconf.log /F %systemroot%\system32\mdaccore.rsp
odbcconf.exe /S /Lv odbcconf.log /F %systemroot%\system32\sqlclnt.rsp
odbcconf.exe /S /Lv odbcconf.log /F %systemroot%\system32\odbcconf.rsp
odbcconf.exe /S /Lv odbcconf.log /F %systemroot%\system32\redist.rsp

如果没有这些文件,用安装盘修复,或者到网上去下载odbc驱动安装。

feed的XML解析错误

XML解析错误:xml处理指令不在外部实体的开始部分
位置:https://moper.me/feed
行:5,列:1<?xml version=”1.0″ encoding=”UTF-8″?>

原因:在<?xml> 前面出现空格或回车,导致无法识别。在firefox下提示出错,IE正常显示,不报错。
可能是最近对主题的functions.php 文件修改造成的。

解决方法:检测<?php……?php>外,是否有多余的回车换行符号

1、检测wp-config.php,wp-rss2.php,wp-atom.php,functions.php文件

2、发一篇文章,更新feed,测试是否出错

3、还不行可以关闭所有插件,逐个测试

ps:此方法来自网上