SQL 报错“参数数据类型 text 对于 replace 函数的参数 1 无效”
此语句执行之后,会将数据库中news表里面的content字段里面的”旧内容”替换成为”新内容”,此处,新内容也可以为空。
此语句执行之后,会将数据库中news表里面的content字段里面的”旧内容”替换成为”新内容”,此处,新内容也可以为空。
mysql安装完毕后,用phpmyadmin管理的话,默认会看到一个 information_schema 的库,感觉特别碍眼。在网上搜索一番,得到如下信息:
INFORMATION_SCHEMA提供了访问数据库元数据的方式。
元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。有些时候用于表述该信息的其他术语包括“数据词典”和“系统目录”。
INFORMATION_SCHEMA是信息数据库,其中保存着关于MySQL服务器所维护的所有其他数据库的信息。在INFORMATION_SCHEMA中,有数个只读表。它们实际上是视图,而不是基本表,因此,你将无法看到与之相关的任何文件。
每位MySQL用户均有权访问这些表,但仅限于表中的特定行,在这类行中含有用户具有恰当访问权限的对象。
看来这个库是无法删除的,所以就要用以下方法把它屏蔽掉!
如果不想在phpMyAdmin中显示的话只需要设置在config.inc.php(有的是config.default.php)中设置这样一句
$cfg['Servers'][$i]['hide_db'] = ‘information_schema’;
再刷新就没有了!
Blog所在的服务器使用有一段时间了,最近整理数据时,发现在/usr/local/mysql/var目录下生成了许多mysql-bin.000001 mysql-bin.000002等许多文件,而且使用时间越长,生成的文件越大。
上网查了下,发现这是mysql的日志文件,这些日志文件在帮助我们恢复数据库操作时有很大帮助,如果不需要这个功能就可以关掉日志记录功能。所以为了节省空间,将其关闭了!
方法是 vi /etc/my.cnf 编译mysql的主配置文件,安装mysql配置不同,该文件路径也不同
log-bin=mysql-bin 将上面这行注释掉,即改为
#log-bin=mysql-bin
再将Mysql重启,就可以关闭Mysql的日志功能了.
再到服务器上查看Mysql-bin.00000的文件,已经没有增加了。
然后再到服务器上执行 rm -fr /usr/local/mysql/var/mysql-bin000*
即可将以前生成的日志文件删除!再次查看,空间大多了!
默认安装的情况下,MS SQL服务在安装时,服务启动账户会被设置成“系统帐户”(SYSTEM)。由于此帐户代表系统本身,恶意用户或入侵者可以利用MS SQL的缺陷,以系统本身的权限对系统中的资源进行操作。如果设置使用管理员组的账户运行MS SQL服务,也会发生同样的问题。本文主要描述在降低MS SQL运行者权限后,需要设置哪些权限以保证MS SQL本身的正常运行。
1.创建用户
创建一个名为mssqlusr的用户,设置一个随机密码,密码的长度最好不要少于20位。
2.设置用户的身份
将mssqlusr用户加入Guests组,并去掉其它任何的组。
3.设置用户的组策略权力
在控制面板→管理工具→本地安全策略中,找到本地策略→用户权力指派,在其中确认如下的两个权限:
拒绝本地登录:其中应当包含Guests组作为服务登录:其中应当包含mssqlusr用户
4.修改相关的磁盘权限
C:盘相关权限
C:\
mssqlusr(只有该文件夹)
遍历文件夹/运行文件
列出文件夹/读取数据
读取属性
读取扩展属性
*注:上述权限需要到权限页中的高级设置中设定
C:\Program Files\Microsoft SQL Server\
mssqlusr
读取和运行
列出文件夹目录
读取
C:\Program Files\Microsoft SQL Server\MSSQL\Data\
(如果此目录用来放置mssql用户数据库或备份)
mssqlusr
修改
读取和运行
列出文件夹目录
读取
写入
其他磁盘相关权限
(假设用户的数据库开设在D:\hosting\mssqldb)
D:\
(如果此分区用来放置mssql用户数据库或备份)
mssqlusr(只有该文件夹)
遍历文件夹/运行文件
列出文件夹/读取数据
读取属性
读取扩展属性
D:\hosting\mssqldb\
(如果此目录用来放置mssql用户数据库或备份)
mssqlusr
修改
读取和运行
列出文件夹目录
读取
写入
备份相关设置
(假设管理员将数据库备份在E:\backup\mssqldb)
E:\
(如果此分区用来放置mssql用户数据库或备份)
mssqlusr(只有该文件夹)
遍历文件夹/运行文件
列出文件夹/读取数据
读取属性
读取扩展属性
E:\backup\mssqldb\
(如果此目录用来放置mssql用户数据库或备份)
mssqlusr
修改
读取和运行
列出文件夹目录
读取
写入
我的系统重装以前的d:\盘装有sqlserver,后重装里系统后,原来装在d:\下的sql服务却启动不起来了
,没有找到sqlserver的安装光盘,于是我就尝试能不能手动恢复sql服务。
我做了以下尝试:
(1)。直接运行D:\Program Files\Microsoft SQL Server\MSSQL\Binn下的sqlservr.exe,发现他有
一个参数:/c
作为一个服务运行,运行后的确可以通过企业管理器找到sqlserver,但是不方便,因为要启动
sqlserver就必须多运行一个dos界面的窗口,我想把它作为一个后台服务运行。
(2)。通过注册表添加sqlserver后台服务:
找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\,下面就是系统中的所有的服务了,
添加一个项:MSSQLSERVER,添加以下的健值:
“Type”=dWord:00000010
“Start”=dword:00000002
“ErrorControl”=dword:00000001
“ImagePath”=hex(2):64,00,3a,00,5c,00,50,00,52,00,4f,00,47,00,52,00,41,00,7e,00,\
31,00,5c,00,4d,00,53,00,53,00,51,00,4c,00,5c,00,62,00,69,00,6e,00,6e,00,5c,\
00,73,00,71,00,6c,00,73,00,65,00,72,00,76,00,72,00,2e,00,65,00,78,00,65,00,\
00,00
“DisplayName”=”MSSQLSERVER”
“ObjectName”=”LocalSystem”
其中的ImagesPath的健值也可以是字符串值:D:\Program Files\Microsoft SQL
Server\MSSQL\Binn\sqlservr.exe
其中D:\Program Files\Microsoft SQL Server为你的sqlserver的目录,
然后此项下添加子项:
Linkage
Performance
Security
Enum
重启电脑在服务中就会添加MSSQLSERVER服务
然后,通过mmc新建一个管理单元,把此服务添加进去。
sqlserver 服务管理器也会检测到并管理sqlserver
其中完整的reg如下,你可以复制下来存成 .reg 文件导入到注册表中
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLSERVER]
“Type”=dword:00000010
“Start”=dword:00000002
“ErrorControl”=dword:00000001
“ImagePath”=hex(2):64,00,3a,00,5c,00,50,00,52,00,4f,00,47,00,52,00,41,00,7e,00,\
31,00,5c,00,4d,00,53,00,53,00,51,00,4c,00,5c,00,62,00,69,00,6e,00,6e,00,5c,\
00,73,00,71,00,6c,00,73,00,65,00,72,00,76,00,72,00,2e,00,65,00,78,00,65,00,\
00,00
“DisplayName”=”MSSQLSERVER”
“ObjectName”=”LocalSystem”
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLSERVER\Linkage]
“EXPort”=hex(7):4d,00,53,00,53,00,51,00,4c,00,53,00,45,00,52,00,56,00,45,00,52,\
00,00,00,00,00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLSERVER\Performance]
“Library”=”d:\\PROGRA~1\\MSSQL\\BINN\\SQLCTR80.DLL”
“Collect”=”CollectSQLPerformanceData”
“Open”=”OpenSQLPerformanceData”
“Close”=”CloseSQLPerformanceData”
“PerfIniFile”=”sqlctr.ini”
“Last Counter”=dword:000010c2
“Last Help”=dword:000010c3
“First Counter”=dword:00000fae
“First Help”=dword:00000faf
“WbemAdapFileSignature”=hex:d6,a0,b9,c1,d1,85,78,63,4f,31,8b,f2,18,51,1a,5d
“WbemAdapFileTime”=hex:24,a2,b9,6d,3b,7d,c6,01
“WbemAdapFileSize”=dword:0000803b
“WbemAdapStatus”=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLSERVER\Security]
“Security”=hex:01,00,14,80,b8,00,00,00,c4,00,00,00,14,00,00,00,30,00,00,00,02,\
00,1c,00,01,00,00,00,02,80,14,00,ff,01,0f,00,01,01,00,00,00,00,00,01,00,00,\
00,00,02,00,88,00,06,00,00,00,00,00,14,00,fd,01,02,00,01,01,00,00,00,00,00,\
05,12,00,00,00,00,00,18,00,ff,01,0f,00,01,02,00,00,00,00,00,05,20,00,00,00,\
20,02,00,00,00,00,14,00,8d,01,02,00,01,01,00,00,00,00,00,05,04,00,00,00,00,\
00,14,00,8d,01,02,00,01,01,00,00,00,00,00,05,06,00,00,00,00,00,14,00,00,01,\
00,00,01,01,00,00,00,00,00,05,0b,00,00,00,00,00,18,00,fd,01,02,00,01,02,00,\
00,00,00,00,05,20,00,00,00,23,02,00,00,01,01,00,00,00,00,00,05,12,00,00,00,\
01,01,00,00,00,00,00,05,12,00,00,00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLSERVER\Enum]
“0″=”Root\\LEGACY_MSSQLSERVER\\0000″
“Count”=dword:00000001
“NextInstance”=dword:00000001
导入之前一定要根据自己的机器的SQLserver安装情况来适当修改才能行。
主要是路径方面的问题,把你的SQL 的实际路径替换即可!
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLSERVER]
下的ImagePath,和
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLSERVER\Performance]
下的Library 修改成自己的目录即可!
无法连接到服务器,用户xxx登陆失败
解决办法:
该错误产生的原因是由于SQL Server使用了”仅 Windows”的身份验证方式,
因此用户无法使用SQL Server的登录帐户(如 sa )进行连接.解决方法如下所示:
1.在服务器端使用企业管理器,并且选择”使用 Windows 身份验证”连接上 SQL Server
在企业管理器中
–右键你的服务器实例(就是那个有绿色图标的)
–编辑SQL Server注册属性
–选择”使用windows身份验证”
2.展开”SQL Server组”,鼠标右键点击SQL Server服务器的名称,选择”属性”,再选择”安全性”选项卡
3.在”身份验证”下,选择”SQL Server和 Windows “.
4.重新启动SQL Server服务.
在以上解决方法中,如果在第 1 步中使用”使用 Windows 身份验证”连接 SQL Server 失败,那就通过修改注册表来解决此问题:
1.点击”开始”-”运行”,输入regedit,回车进入注册表编辑器
2.依次展开注册表项,浏览到以下注册表键:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer]
3.在屏幕右方找到名称”LoginMode”,双击编辑双字节值
4.将原值从1改为2,点击”确定”
5.关闭注册表编辑器
6.重新启动SQL Server服务.
此时,用户可以成功地使用sa在企业管理器中新建SQL Server注册,
但是仍然无法使用Windows身份验证模式来连接SQL Server.
这是因为在 SQL Server 中有两个缺省的登录帐户:
BUILTIN\Administrators
<机器名>\Administrator 被删除.
要恢复这两个帐户,可以使用以下的方法:
1.打开企业管理器,展开服务器组,然后展开服务器
2.展开”安全性”,右击”登录”,然后单击”新建登录”
3.在”名称”框中,输入 BUILTIN\Administrators
4.在”服务器角色”选项卡中,选择”System Administrators”
5.点击”确定”退出
6.使用同样方法添加 <机器名>\Administrator 登录.
说明:
以下注册表键:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\LoginMode
的值决定了SQL Server将采取何种身份验证模式.
1.表示使用”Windows 身份验证”模式
2.表示使用混合模式(Windows 身份验证和 SQL Server 身份验证).
—————————————————————————–
提示连接超时
如果遇到第三个错误,一般而言表示客户端已经找到了这台服务器,并且可以进行连接,不过是由于连接的时间大于允许的时间而导致出错。这种情况一般会发生在当用户在Internet上运行企业管理器来注册另外一台同样在Internet上的服务器,并且是慢速连接时,有可能会导致以上的超时错误.有些情况下,由于局域网的网络问题,也会导致这样的错误.
要解决这样的错误,可以修改客户端的连接超时设置。默认情况下,通过企业管理器注册另外一台SQL Server的超时设置是 4 秒,而查询分析器是 15 秒(这也是为什么在企业管理器里发生错误的可能性比较大的原因).
具体步骤为:
企业管理器中的设置:
1.在企业管理器中,选择菜单上的”工具”,再选择”选项”
2.在弹出的”SQL Server企业管理器属性”窗口中,点击”高级”选项卡
3.在”连接设置”下的”登录超时(秒)”右边的框中输入一个比较大的数字,如 20.
查询分析器中的设置:
工具 — 选项 — 连接 — 将登录超时设置为一个较大的数字
近期评论