Currently Browsing

系统与网络

SQL Server 2005中还原数据库后,提示用户或组已经存在的问题解决

问题背景与现象:

1.Sql server 2005服务器,还原了一个来自Sql server2000备份的数据库备份文件

2.这个还原操作自动生成了相应的数据库用户(原来数据库已有的),假设为user1

3.在SSMS中建立对应的登录名时,提示用户或组已经存在,在数据库——安全性——用户 节点下也无法删除

4.直接使用这个user1登录SSMS,提示无法登录,没有默认数据库

5.修改这个用户的属性,设置默认数据库,保存时提示“要有登录名”

%¥#%……%@   汗!

 

问题根源:

经查资料,这个是Sql server里的“孤立用户”,就是说其登录名没有和数据库的用户名对应起来,这个操作在SSMS里是实现不了的,要么提示无法登录,要么提示已经存在,必须要用一个存储过程来处理

 

处理方法:(来自http://www.chr114.coms/20110105/09311428.shtml

新建一个查询,输入

Use 数据库

go

sp_change_users_login ‘update_one’, ‘登录用户名’, ‘用户名’

解释一下参数:

目的让”登录用户名’” 与 ‘用户名’ 联系起来

update_one, 表示只对一个用户进行操作

登录用户名’与’用户名’, 则分别是SQL Server的登录名与数据库中的用户名

sp_change_users_login的更详细的用法可以参考SQL Server的联机帮助, SQL Server 2005的在此, SQL 2000的链接不方便做成链接的形式, 各位可以自己到联机丛书的索引中找一下.

 

例子:

–Use dbname

–go

–sp_change_users_login ‘update_one’, ‘sa, ‘sa’

 

PHPNow无法使用mssql扩展的解决办法

觉得XAMPP太复杂了,占用空间太大,于是用PHPNow替换之。

安装完毕后,一切都很正常,但是无法使用mssql,我的本机环境是win7+PHPNow+SQL server 2008,需要连接到一台远程的SQL Server 2000上。

首先php.ini里面开启mssql的扩展

重启apache 使用mssql_connect()函数测试,提示没有这个函数,google一番,原来是要把相关的dll文件放入系统文件夹的system32目录下。

假设你的phpnow和我一样装在D盘,那么就是如下两个文件

D:\PHPnow-1.5.6\php-5.2.14-Win32\ntwdblib.dll

D:\PHPnow-1.5.6\php-5.2.14-Win32\ext\php_mssql.dll

最后重启apache即可。

监控宝对apache的监控以及遇到问题解决

今天服务器又不间断访问慢,从监控宝的linux系统监控来看没有问题,网络访问有一些特别:电信特别慢,网通很正常。
为了更好地排除问题,于是对apache也进行了监控,具体方法可以参见

1.apache开启server-status

原文地址

2.监控宝控制台添加新的服务监控项 http:/.jiankongbao.com/?p=422

我在监控宝的面板添加 http://域名/server-status 时,老是提示不是一个正确的url,开始以为这个“server-status ”是一个目录,然后ftp上去一个目录也不行。

接下来检查apache的配置文件, 发现conf/extra下面有个httpd-info.conf,把httpd.conf里的那段配置移到这个文件里面来,重启apache,访问http://域名/server-status时,提示404错误,我汗。

google了很久,发现有篇文章说到了这个问题,大概是两种解决方法,一种是apache再监听一个8080端口,二是在指定虚拟主机时,不要用*:80,而要写明ip地址。我觉得在进行如此大的操作之前再自己看看自己有没有遗漏的地方,重新检查一下httpd.conf文件,发现里面有一行include /conf/extra/httpd-info.conf没有去掉注释。。。原来如此。。。重启,搞定,监控宝提示已经正常开始监听了。

Continue Reading this Entry

用监控宝来检测服务器运行状况(linux)

www.jiankongbao.com  服务器管理必备良器。
首先我们怀着半信半疑的态度注册一个免费的用户,吼吼!

然后看教程,http://wiki.jiankongbao.com/doku.php 找到“服务器监控”的“在Linux服务器上开启安全的SNMP代理”这一节,仔细拜读。
特别是假如你的系统没有安装net-snmp的时候,要认真读这篇文章 http://wiki.jiankongbao.com/doku.php/文档:安全指引#linux_snmp

这里有几点是我在配置过程中遇到的问题,说明一下:
(1)我在编译的时候,对“–with-openssl=/usr/”这个比较不解,于是没有跟上参数,用的“–with-openssl”
(2)在vi /var/net-snmp/snmpd.conf的时候,提示无法建立,这个我手工在/var目录下建了个 net-snmp 目录搞定
(3)iptables开启端口后,记得重启下防火墙的服务
(4)第一次试v3不成功,修改配置文件后,需要killall -9 snmpd,然后重启snmpd服务……

Continue Reading this Entry

dell硬件检查工具DSET的使用

第一部分 转自http://www.netcento.com/archive/256.html

前几天发台DELL服务器运行没以前流畅,检查系统显示是正常,但是检测到硬件的时候,发现内存少了2个G,想起上次服务器报警内存错误,重启之后服务器也没报错提示了,可能是上次出现问题没检查彻底,从网上下载DELL服务器扫描日志工具,发现硬件日志中有这么一个提示:Mem ECC Warning: Memory sensor, transition to critical from less severe ( DIMM_A2 ) was asserted,扫描完后关机断电,重新拔插并交换内存条位置。开机,正常了。有关DSET的使用,做MARK以备后用。

DSET下载地址:http://support.dell.com/dset/ 有for windows的,有for linux的,现在最新版本好像到1.9了

Continue Reading this Entry

我的电脑常用软件

使用电脑这么多年,软件尝试了千百个,系统安装了千百次,现在年龄大了,终于不再追新求异,但求稳定好用。以下是现在电脑里正在使用的软件,特记录下来,一旦哪天电脑故障的时候,可以很方便地恢复到自己熟悉的环境来。

操作系统:

  • WINDOWS 7 旗舰版(雨林木风5周年GHOST版本):好用就是好用,安装完自动激活,解决了dell品牌机需要刷bios的问题……
  • CentOS 5.5 :偶尔使用,还在学习中,主要配置LAMP平台做开发测试

Continue Reading this Entry

[转]Linux下的tar压缩解压缩命令详解

原文地址:http:/.myspace.cn/e/401662509.htm

Linux下的tar压缩解压缩命令详解

tar

-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件

Continue Reading this Entry

CentOS最小化安装_lnmp一键安装包_以及后续设置

一.安装CentOS 5.5

虚拟机上进行CentOS 最小化安装(在安装过程中选择软件的时候,选“立即定制”,然后去掉不必要的所有包),过程很快,也就10分钟。

这里我使用的是“桥接”的网络连接方式,即主机和虚拟机同属于一个网段,都有各自不同的ip地址(这里我主机是192.168.0.12,虚拟机装好后是192.168.0.14)
装好后自动重启,第一次登陆会提示设置系统服务、网络等等,这里可以关掉一些蓝牙、笔记本cpu节能等没用的服务。
Continue Reading this Entry

linux下php使用freetds连接windows下的mssql解决方案以及碰到问题

最近公司要上马动网论坛转到discuz,但是要求能在discuz上调用原动网、动易等asp+sql server平台上的数据,能在动网/动易等其他asp或者.net平台调用discuz中的mysql数据。

开始准备使用这些cms/bbs后台中的javascript调用,后来考虑到seo、效率等因素,决定直接调用数据库——或者使用已有接口;或者干脆直接读数据库。

其实从asp调用mysql还是比较简单,问题是我们这里discuz准备使用linux平台(LAMP),所以要从discuz中调用出 windows平台的sql server 2000中的数据是比较难的问题。毕竟linux下无法直接支持mssql,而且由于之前的所有数据库都是使用的gb2312编码(后来发现还有个.net编写的模块使用的是latin1排序),而linux下的freetds只支持utf-8编码。

于是在虚拟机环境下装好RHEL5,配置了LAMP环境,php支持iconv,mbstring,gd,jpeg,png等等扩展,这里鄙视一把 virtualbox ,RHEL在里面怎么也设置不了800以上的分辨率,装了add on光盘也没有用,其中过程另有文说明。

然后就是下载freetds,重新编译php,使其支持mssql,装好后进入freetds的设置文件,注意两点

(1)加入一行配置参数,设置默认的client-charset为utf-8

client charset = utf-8

因为调用的sqlserver数据库有gb2312的排序规则的,也有latin1排序规则的,gb2312可以读出正常的汉字,latin1的汉字读出来是乱码问号,所以这里必须强制设置一个client charset参数,我之前忘记这里,还绕了好大圈子,找了半天linux下odbc的资料(因为odbc可以在读取数据后进行自动转码)。

(2)设置默认的host等

[MS2KSQL]
host = 192.168.1.10
port = 1433
client charset = utf-8
tds version = 8.0

[MS2KSQL] 这里关系到你php语句中mysql_connect(host,user,password)的host参数,我开始就是因为这里没有引起注意卡了好久,保留[MS2KSQL]能用freetds自带的的tsql正常连接,同样的参数换php就不行。

因为我需要连接到192.168.0.10,但php使用mysql_connect(”192.168.0.10″,”sa”,”")老是提示连接不上,后来找到一篇文章在最后一个不起眼处说这里要改成你php中mssql_connnet语句对应的host参数才能连接上,于是改成

[192.168.0.10]
host = 192.168.1.10
port = 1433
client charset = utf-8
tds version = 8.0

好了,现在php里可以正常连接了。

tds version = 8.0这里是你连接的sql server 的版本,2000一般写个8.0就可以了

试试吧,现在不管mssql里数据库是utf-8、gbk还是latin1都可以正常读出数据了,这里都会被freetds转成utf-8,因为我们设置了client charset = utf-8!

RHEL(Fedora)中安装LAMP平台

 

在安装的过程中,得到了k老大不厌其烦的指导,在此感谢。之前安装都十分顺利,这次不知道为什么遇到很多奇怪的问题,可能和发行版有关(自己在PC上装Fedora,这次在Dell服务器上装RHEL),但遇到问题也是好事,积累了不少经验,这些问题网上很多网友也遇到了,这里整理了一下解决方法,希望能帮到有需要的人。

 

首先要把Apache、MySQL、PHP、Zend Optimizer、以及php的各种扩展的源码包都找到,这里我们放到/root目录下,这个按需选择,有的你可以不装,但有的必须装。

 

一 APACHE2的安装配置

命令

tar zxvf httpd-2.2.16.tar.gz

cd /httpd-2.2.16

编译所有模块(推荐,可后期自行修改配置文件取消)

./configure –prefix=/usr/local/apache2 –enable-modules=so –enable-mods-shared=all

 

make

make install

设置开机自动启动apache在/etc/rc.d/rc.local最后一行添加

/usr/local/apache2/bin/apachectl start

要手动启动、终止apache服务,分别使用start和stop即可,restart为重启

 

二 安装mysql

我们下载的是解压即可使用无需编译的版本

解压然后复制整个目录到 /usr/local/mysql-5.1.49-linux-i686-icc-glibc23

创建一个硬链接,链到这个实际目录 ln –s /usr/local/mysql-5.1.49-linux-i686-icc-glibc23 /usr/local/mysql

添加一个组

groupadd mysql

将用户加入组中

useradd -g mysql mysql

修改mysql目录的权限

chown  -R mysql:mysql /usr/local/mysql

进入mysql安装目录,安装系统默认数据库

/usr/local/mysql/scripts/mysql_install_db –user=mysql

改变数据库目录权限

chown –R mysql:mysql /usr/local/mysql/data

将MySQL配置文件放到/etc目录下

复制/usr/local/mysql/support-files/my-medium.cnf文件到 /etc/my.cnf

启动服务(以后台方式启动)

/usr/local/mysql/bin/mysqld-safe –user=mysql &

修改root密码

/usr/local/mysql/bin/mysqladmin -u root -p

输入密码

将mysql服务放入启动文档,修改/etc/rc.d/rc.local,在最后一行添加

/usr/local/mysql/bin/mysqld_safe –defaults-file=/etc/my.cnf  –user=mysql &

 

三。安装php

首先需要安装各种扩展

jpeg6,首先要自己建立相关目录

mkdir /usr/local/jpeg6

mkdir /usr/local/jpeg6/bin

mkdir /usr/local/jpeg6/lib

mkdir /usr/local/jpeg6/include

mkdir /usr/local/jpeg6/man

mkdir /usr/local/jpeg6/man/man1

tar zxvf  jpegsrc.v6b.tar.gz

cd  jpeg-6b

./configure –prefix=/usr/local/jpeg6 –-enable-shared  -–enable-static

make;make install

安装Zlib

tar zxvf zlib-1.2.3.tar.gz

cd zlib-1.2.3

./configure –prefix=/usr/local/zlib

make;make install

安装freetype

tar zxvf freetype-2.3.7.tar.gz

cd freetype-2.3.7

./configure –prefix=/usr/local/freetype

make;make install

安装libpng

tar zxvf libpng-1.2.29.tar.gz

cd libpng-1.2.29

cp scripts/makefile.linux makefile

configure –prefix=/usr/local/libpng

make;make install

安装GD库

tar zxvf gd-2.0.35.tar.gz

cd gd-2.0.35

./configure –prefix=/usr/local/gd2 –with-jpeg=/usr/local/jpeg6 –with-png=/usr/local/lib –with-zlib=/usr/local/zlib –with-freetype=/usr/local/freetype

make; make install

安装Curl库

tar zxvf .tar.gz

cd curl-7.18.2

./configure –prefix=/usr/local/php_soft/curl-7.18.2

make;make Install

安装libxml2库

tar zxvf libxml2-2.6.30.tar.gz

cd libxml2-2.6.30

./configure –prefix=/usr/local/php_soft/libxml2-2.6.30

make;make install

安装xslt支持

tar zxvf libxslt-1.1.22.tar.gz

cd libxslt-1.1.22

./configure –prefix=/usr/local/php_soft/libxslt-1.1.22 –with-libxml-prefix=/usr/local/php_soft/libxml2-2.6.30

make;make install

支持mssql,加入freetds库

tar zxvf freetds-0.82.tar.gz

cd freetds-0.82

./configure –prefix=/usr/local/php_soft/freetds-0.82

make;make install

开始安装php

tar zxvf php-5.2.8.tar.gz

cd php-5.2.8

./configure –prefix=/usr/local/php-5.2.8

–with-apxs2=/usr/local/apache2/bin/apxs

–with-mysql=/usr/local/mysql

–with-curl=/usr/local/php_soft/curl-7.18.2

–with-libxml-dir=/usr/local/php_soft/libxml2-2.6.30

–with-libexpat-dir=/usr/local/php_soft/expat-2.0.1

–with-xsl=/usr/local/php_soft/libxslt-1.1.22

–with-gd=/usr/local/php_soft/gd-2.0.33

–with-jpeg-dir=/usr/local/php_soft/jpeg6

–with-zlib-dir=/usr/local/php_soft/zlib-1.2.3

–with-png-dir=/usr/local/php_soft/libpng-1.2.9

–with-freetype-dir=/usr/local/php_soft/freetype-2.3.7

–with-config-file-path=/usr/local/php-5.2.8/lib

–with-mssql=/usr/local/php_soft/freetds-0.82(支持mssql,可选)

make;make install

 

cp php.ini-dist /usr/local/lib/php.ini #复制配置文件到指定的位置

编辑一下/usr/local/lib/php.ini,将一些参数修改成你需要的,

测试

修改apache的DocumentRoot值,确保httpd.conf里面已经启用了LoadModule php5_modules/libphp5.so

在文件中添加AddType application/x-httpd-php .php

搜索“index.html”那一行,添加一个index.php,使apache支持index.php作为默认首页

启动apache:/usr/local/apache2/bin/apachectl start

如果重新启动apache报如下错误:
httpd: Syntax error on line 53 of /usr/local/apache/conf/httpd.conf: Cannot load /usr/local/apache/modules/libphp5.so into server: /usr/local/apache/modules/libphp5.so:cannot restore segment prot after reloc: Permission denied

原因:是Linux有一个SELinux保护模式引起的。

解决办法:

1关闭SELINUX的方法:
vi /etc/selinux/config 将SELINUX=enforcing 改成SELINUX=disabled 需要重启
这个方法可能会对服务器带来风险。

2不关闭SELINUX的方法:
# setenforce 0
# chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t /usr/local/apache/modules/libphp5.so
# service httpd restart
# setenforce 1

好了我们在主目录里写一个php文件,phpinfo()一下看是否成功

四。安装zend optimizer

这个简单,解压,cd Zend…..

./install 按提示操作即可。不过要注意,我们经常发现装了zend后,在phpinfo()测试运行环境的时候,里面仍然没有加载3.3.3,还是默认的2.X版本

原因是:这里php运行时实际调用的库文件是/usr/lib里面的,而安装Zend的时候php.ini里面对zend扩展的一些路径参数有些不同,好像是/usr/local/Zend/lib/,所以我们先把/usr/Zend/lib里面的那些文件复制到/usr/lib里面,然后修改php.ini文件,将路径改为正确的/usr/lib/zendoptimize…….等等,然后做一个链接,运行

ln -s /usr/local/lib/php.ini /usr/local/php/lib

重启apache即可看到加载了Zend3.3.3

不知道有没有解决你的问题呢?有问题可以给我留言哦,大家一起学习,我是菜鸟呵呵