??xml version="1.0" encoding="utf-8" standalone="yes"?>
2、接受Y件用许可协议?br />
3、SQL2005在进行初始检后开始执行安?SQL2005 所需lg?br />
4、完成所必需lg的安装?br />
5、安装程序开始执行系l配|检查?br />
6、进入SQL2005的安装向对{?br />
7、向导开始执行系l配|检查,因ؓ是安装群集,会自动检查各节点q给出状态提C。因拟机配置的是512M内存Q所以这里会“最低硬件要?#8221;的警告,可以忽略Q?br />
8、选择要安装的lgQ如要得到各lg的详l信息可以选择高V?br />
9、进入高U项后就来到了详l的各组件的功能选择Q这里可以得到详l的lg信息。根据需要选择lg功能?br />
10?#8220;实例?#8221;配置中选择“默认实例”?br />
11、虚拟服务器名称配置中,为此集命名为sql2005
12、ؓ虚拟服务器配|IPQ这里我使用Public作ؓ公共讉KQƈ分配一个IP192.168.199.201Q添加后点击“下一?#8221;?br />
13、在“选择集l?#8221;中选择可以得群集组Q因里我只有一个默认的集l,所以点?#8220;下一?#8221;l箋?br />
14、弹告,提示我此集l包含仲裁资源,q是因ؓ我之前配|了一块Pln盘q分配两个逻辑分区来做集Q因此在q里会提C告,可以直接忽略?br />
15、群集节炚w|中Q选择可用的节点,因ؓ我当前是双节点群集环境,所以安装向D动ؓ我选择了NodeA节点?br />
16、配|远E安装的帐户Q这里的帐户必须是各节点上有效的理员帐戗?br />
17、ؓ服务配置帐户Q之前我已经d了一个名为sql2005的域用户作ؓSQL服务帐户Q所以这里填写上正确的信息?br />
18、配|群集服务的域组Q这里其实我到现在还没有d搞明白是什么意思,参看帮助文gQ便在域中ؓ每个SQL服务创徏对应的全局l。(希望达h能够帮我解答一下此处的意义Q)
19、n份验证模式中Q选择“混合模式”q和SQL2000的感忉|一L?br />
20、排序规则我是按照默认选择的?br />
21、这里我没有选择微Y提供的跟t服务功能?br />
22、前期的安装配置完成后就准备开始执行正式的文g安装Q?/p>
SELECT cast(cast(U目~号 as numeric(10,2)) as nvarchar(255))+' ' 转换后的别名
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
/********************** EXCEL导到q程SQL
insert OPENDATASOURCE(
'SQLOLEDB',
'Data Source=q程ip;User ID=sa;Password=密码'
).库名.dbo.表名 (列名1,列名2)
SELECT 列名1,列名2
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\test.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...xactions
/** 导入文本文g
EXEC master..xp_cmdshell 'bcp dbname..tablename in c:\DT.txt -c -Sservername -Usa -Ppassword'
/** 导出文本文g
EXEC master..xp_cmdshell 'bcp dbname..tablename out c:\DT.txt -c -Sservername -Usa -Ppassword'
?br />
EXEC master..xp_cmdshell 'bcp "Select * from dbname..tablename" queryout c:\DT.txt -c -Sservername -Usa -Ppassword'
导出到TXT文本Q用逗号分开
exec master..xp_cmdshell 'bcp "库名..表名" out "d:\tt.txt" -c -t ,-U sa -P password'
BULK INSERT 库名..表名
FROM 'c:\test.txt'
WITH (
FIELDTERMINATOR = ';',
ROWTERMINATOR = '\n'
)
--/* dBase IV文g
select * from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'dBase IV;HDR=NO;IMEX=2;DATABASE=C:\','select * from [客户资料4.dbf]')
--*/
--/* dBase III文g
select * from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'dBase III;HDR=NO;IMEX=2;DATABASE=C:\','select * from [客户资料3.dbf]')
--*/
--/* FoxPro 数据?br />
select * from openrowset('MSDASQL',
'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\',
'select * from [aa.DBF]')
--*/
/**************导入DBF文g****************/
select * from openrowset('MSDASQL',
'Driver=Microsoft Visual FoxPro Driver;
SourceDB=e:\VFP98\data;
SourceType=DBF',
'select * from customer where country != "USA" order by country')
go
/***************** 导出到DBF ***************/
如果要导出数据到已经生成l构(即现存的)FOXPRO表中,可以直接用下面的SQL语句
insert into openrowset('MSDASQL',
'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:\',
'select * from [aa.DBF]')
select * from ?/p>
说明:
SourceDB=c:\ 指定foxpro表所在的文g?br />
aa.DBF 指定foxpro表的文g?
/*************导出到Access********************/
insert into openrowset('Microsoft.Jet.OLEDB.4.0',
'x:\A.mdb';'admin';'',A? select * from 数据库名..B?/p>
/*************导入Access********************/
insert into B?selet * from openrowset('Microsoft.Jet.OLEDB.4.0',
'x:\A.mdb';'admin';'',A?
文g名ؓ参数
declare @fname varchar(20)
set @fname = 'd:\test.mdb'
exec('SELECT a.* FROM opendatasource(''Microsoft.Jet.OLEDB.4.0'',
'''+@fname+''';''admin'';'''', topics) as a ')
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="f:\northwind.mdb";Jet OLEDB:Database Password=123;User ID=Admin;Password=;')...产品
********************* 导入 xml 文g
DECLARE @idoc int
DECLARE @doc varchar(1000)
--sample XML document
SET @doc ='
<root>
<Customer cid= "C1" name="Janine" city="Issaquah">
<Order oid="O1" date="1/20/1996" amount="3.5" />
<Order oid="O2" date="4/30/1997" amount="13.4">Customer was very satisfied
</Order>
</Customer>
<Customer cid="C2" name="Ursula" city="Oelde" >
<Order oid="O3" date="7/14/1999" amount="100" note="Wrap it blue
white red">
<Urgency>Important</Urgency>
Happy Customer.
</Order>
<Order oid="O4" date="1/20/1996" amount="10000"/>
</Customer>
</root>
'
-- Create an internal representation of the XML document.
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
-- Execute a SELECT statement using OPENXML rowset provider.
SELECT *
FROM OPENXML (@idoc, '/root/Customer/Order', 1)
WITH (oid char(5),
amount float,
comment ntext 'text()')
EXEC sp_xml_removedocument @idoc
???????
/**********************Excel导到Txt****************************************/
想用
select * into opendatasource(...) from opendatasource(...)
实现一个Excel文g内容导入C个文本文?/p>
假设Excel中有两列Q第一列ؓ姓名Q第二列为很行帐?16?
且银行帐号导出到文本文g后分两部分,?位和?位分开?/p>
邹健Q?br />
如果要用你上面的语句插入的话,文本文g必须存在,而且有一?姓名,银行账号1,银行账号2
然后可以用下面的语句进行插?br />
注意文g名和目录Ҏ你的实际情况q行修改.
insert into
opendatasource('MICROSOFT.JET.OLEDB.4.0'
,'Text;HDR=Yes;DATABASE=C:\'
)...[aa#txt]
--,aa#txt)
--*/
select 姓名,银行账号1=left(银行账号,8),银行账号2=right(银行账号,8)
from
opendatasource('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;IMEX=2;DATABASE=c:\a.xls'
--,Sheet1$)
)...[Sheet1$]
如果你想直接插入q生成文本文?p用bcp
declare @sql varchar(8000),@tbname varchar(50)
--首先excel表内容导入到一个全局临时?br />
select @tbname='[##temp'+cast(newid() as varchar(40))+']'
,@sql='select 姓名,银行账号1=left(银行账号,8),银行账号2=right(银行账号,8)
into '+@tbname+' from
opendatasource(''MICROSOFT.JET.OLEDB.4.0''
,''Excel 5.0;HDR=YES;IMEX=2;DATABASE=c:\a.xls''
)...[Sheet1$]'
exec(@sql)
--然后用bcp从全局临时表导出到文本文g
set @sql='bcp "'+@tbname+'" out "c:\aa.txt" /S"(local)" /P"" /c'
exec master..xp_cmdshell @sql
--删除临时?br /> exec('drop table '+@tbname)
/********************导整个数据库*********************************************/
用bcp实现的存储过E?/p>
/*
实现数据导入/导出的存储过E?br />
Ҏ不同的参?可以实现导入/导出整个数据?单个?br />
调用CZ:
--导出调用CZ
----导出单个?br />
exec file2table 'zj','','','xzkh_sa..地区资料','c:\zj.txt',1
----导出整个数据?br />
exec file2table 'zj','','','xzkh_sa','C:\docman',1
--导入调用CZ
----导入单个?br />
exec file2table 'zj','','','xzkh_sa..地区资料','c:\zj.txt',0
----导入整个数据?br />
exec file2table 'zj','','','xzkh_sa','C:\docman',0
*/
if exists(select 1 from sysobjects where name='File2Table' and objectproperty(id,'IsProcedure')=1)
drop procedure File2Table
go
create procedure File2Table
@servername varchar(200) --服务器名
,@username varchar(200) --用户?如果用NT验证方式,则ؓI?'
,@password varchar(200) --密码
,@tbname varchar(500) --数据?dbo.表名,如果不指?.dbo.表名,则导出数据库的所有用戯
,@filename varchar(1000) --导入/导出路径/文g?如果@tbname参数指明是导出整个数据库,则这?br />
参数是文件存放\?文g名自动用
表名.txt
,@isout bit --1为导?0为导?br />
as
declare @sql varchar(8000)
if @tbname like '%.%.%' --如果指定了表?则直接导出单个表
begin
set @sql='bcp '+@tbname
+case when @isout=1 then ' out ' else ' in ' end
+' "'+@filename+'" /w'
+' /S '+@servername
+case when isnull(@username,'')='' then '' else ' /U '+@username end
+' /P '+isnull(@password,'')
exec master..xp_cmdshell @sql
end
else
begin --导出整个数据?定义游标,取出所有的用户?br />
declare @m_tbname varchar(250)
if right(@filename,1)<>'\' set @filename=@filename+'\'
set @m_tbname='declare #tb cursor for select name from '+@tbname+'..sysobjects where xtype=''U'''
exec(@m_tbname)
open #tb
fetch next from #tb into @m_tbname
while @@fetch_status=0
begin
set @sql='bcp '+@tbname+'..'+@m_tbname
+case when @isout=1 then ' out ' else ' in ' end
+' "'+@filename+@m_tbname+'.txt " /w'
+' /S '+@servername
+case when isnull(@username,'')='' then '' else ' /U '+@username end
+' /P '+isnull(@password,'')
exec master..xp_cmdshell @sql
fetch next from #tb into @m_tbname
end
close #tb
deallocate #tb
end
go
/************* Oracle **************/
EXEC sp_addlinkedserver 'OracleSvr',
'Oracle 7.3',
'MSDAORA',
'ORCLDB'
GO
delete from openquery(mailser,'select * from yulin')
select * from openquery(mailser,'select * from yulin')
update openquery(mailser,'select * from yulin where id=15')set disorder=555,catago=888
insert into openquery(mailser,'select disorder,catago from yulin')values(333,777)
补充Q?/p>
对于用bcp导出,是没有字D名?
用openrowset导出,需要事先徏好表.
用openrowset导入,除ACCESS及EXCEL?均不支持非本机数据导?br />
随着|络的普及,Z|络的应用也来多?a class="UBBWordLink" target="_blank">|络数据库就是其中之一。通过一台或几台服务?/a>可以为很多客h供服务,q种方式lh们带来了很多方便Q但也给不法分子造成了可乘之机。由于数据都是通过|络传输的,q就可以在传输的q程中被截获Q或者通过非常手段q入数据?/a>。由于以上原因,数据?/a>安全显得十分重要。因此,本文׃上问题讨ZMySQL数据库在|络安全斚w的一些功能?/p>
帐户安全
帐户是MySQL最单的安全措施。每一帐户都由用户名、密码以及位|(一般由服务?/a>名、IP或通配W)l成。如用户john从server1q行d可能和john从server2d的权限不同?/p>
MySQL的用L构是用户?密码/位置。这其中q不包括数据?/a>名。下面的两条命o为database1和database2讄了SELECT用户权限?/p>
GRANT SELECT ON database1.* to 'abc'@'server1' IDENTIFIED BY 'password1'; GRANT SELECT ON database2.* to 'abc'@'server1' IDENTIFIED BY 'password2'; W一条命令设|了用户abc在连?a class="UBBWordLink" target="_blank">数据?/a>database1时用password1。第二条命o讄了用户abc在连?a class="UBBWordLink" target="_blank">数据?/a>database2时用password2。因此,用户abc在连?a class="UBBWordLink" target="_blank">数据?/a>database1和database2的密码是不一L?/p>
上面的设|是非常有用的。如果你只想让用户对一?a class="UBBWordLink" target="_blank">数据?/a>q行有限的访问,而对其它数据?/a>不能讉KQ这样可以对同一个用戯|不同的密码。如果不q样做,当用户发现这个用户名可以讉K其它数据?/a>Ӟ那将会造成ȝ?/p>
MySQL使用了很多授权表来跟t用户和q些用户的不同权限。这些表是在mysql数据库中的MyISAM表。将q些安全信息保存在MySQL中是非常有意义的。因此,我们可以使用标准的SQL来设|不同的权限?/p>
一般在MySQL数据库中可以使用3U不同类型的安全查: ·d验证 也就是最常用的用户名和密码验证。一但你输入了正的用户名和密码Q这个验证就可通过?/p>
·授权 在登录成功后Q就要求对这个用戯|它的具体权限。如是否可以删除数据?/a>中的表等?/p>
·讉K控制 q个安全cd更具体。它涉及到这个用户可以对数据表进行什么样的操作,如是否可?a class="UBBWordLink" target="_blank">~辑 讉K控制׃ ·SELECT SELECT是设定用h否可以用SELECT来查询数据。如果用h有这个特权,那么只能执行一些简单的SELECT命oQ如计算表达式(SELECT 1+2Q?或是日期转换QSELECT Unix_TIMESTAMP(NOW( ))){?/p>
·INSERT INDEX军_用户是否可以对表的烦引进行设|。如果用h有这个权限,那么无法设|表中的索引?/p>
·ALTER 如果一个用h有这个GRANT权限Q那么他可以将自己的权限授l别的用戗也是_q个用户可以和其它用户共享自q权限?/p>
·REFERENCES 有了REFERENCES权限Q用户就可以其它表的一个字D作为某一个表的外键约束?/p>
除了以上的权限外QMySQLq有一些权限可以对整个MySQLq行操作?/p>
·Reload q个权限可以使用h权执行各UFLUSH命oQ如FLUSH TABLES, FLUSH STATUS{?/p>
·Shutdown q个权限允许用户关闭MySQL ·Process 通过q个权限Q用户可以执行SHOW PROCESSLIST和KILL命o。这些命令可以查看MySQL的处理进E,可以通过q种方式查看SQL执行的细节?/p>
·File q个权限军_用户是否可以执行LOAD DATA INFILE命o。给用户q个权限要慎重,因ؓ有这个权限的用户可以Q意的文g装蝲到表中,q样对MySQL是十分危险的?/p>
·Super q个权限允许用户l止M查询Q这些查询可能ƈ不是q个用户执行的)?br />
以上几种权限是非常危险的Q在l用h权限时要非常谨慎?/p>
MySQL中的SSL 以上的帐?a class="UBBWordLink" target="_blank">安全只是以普通的Socketq行数据传输的,q样非常?a class="UBBWordLink" target="_blank">安全。因此,MySQL?.1版以后提供了对SSLQSecure Scokets LayerQ的支持。MySQL使用的是免费的OpenSSL库?/p>
׃MySQL的Linux版本一般都是随Linux本n一起发布,因此Q它们默认时都不使用SSLq行传输数据。如果要打开SSL功能Q需要对hava_openssl变量q行讄Q?/p>
MySQL?a class="UBBWordLink" target="_blank">Windows版本已经OpenSSL加入了。也面的命o?/p>
SHOW VARIABLES LIKE 'have_openssl'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | have_openssl | NO | +---------------+-------+ 1 row in set (0.00 sec) 如果q回的是NOQ那么说明你需要将OpenSSL~译q自qMySQL 在有时你可能需要将用户名和密码q行加密传输。在q时可以使用下面GRANT命oQ?/p>
GRANT ALL PRIVILEGES ON ssl_only_db.* to 'abc'@'%' IDENTIFIED BY "password!" REQUIRE SSL; q可以通过 REQUIRE x509 选项q行SSL传输: GRANT ALL PRIVILEGES ON ssl_only_db.* to 'abc'@'%' IDENTIFIED BY "password!" REQUIRE x509; 你还可以使用REQUIRE SUBJECT来指定一个特定的客户端证书来讉K数据?/a>?/p>
GRANT ALL PRIVILEGES ON ssl_only_db.* to 'abc'@'%' 也许你ƈ不关心用的是什么客戯可,而仅仅关心的是你的证书。那么你可以使用REQUIRE ISSUER来实玎ͼ GRANT ALL PRIVILEGES ON ssl_only_db.* to 'abc'@'%' IDENTIFIED BY "password!" SSLq可以直接通过密码q行加密。可以用REQUIRE CIPHER讄密码?/p>
GRANT ALL PRIVILEGES ON ssl_only_db.* to 'abc'@'%' IDENTIFIED BY "password!" 上面使用了GRANT命o对用h限进行设|。而这?a class="UBBWordLink" target="_blank">信息 下面让我们来看看MySQL中的最要的5个授权表?/p>
user 用户表保存了用户的权限和被加密的密码。这个表负责定哪些用户和客h可以q接?a class="UBBWordLink" target="_blank">服务?/a>上?/p>
host q个表ؓ每一个客h分配权限Q它q不考虑用户的权限。MySQL在确定是否接收还是拒l一个连接时 db db表保存了数据?/a>层的权限信息?/p>
tables_priv q个表存储了表的权限信息?/p>
columns_priv q个表保存了单独列的权限信息。通过q个表,可以操作某一列的权限授予一个用戗?/p>
哈希加密 如果数据?/a>保存了敏感的数据Q如银行卡密码,客户信息{,你可能想这些数据以加密的Ş式保存在数据?/a>中。这样即使有入了你的数据?/a>Qƈ看到了这些数据,也很难获得其中的真实信息?/p>
在应用程序的大量信息中,也许你只想交很小的一部分q行加密Q如用户的密码等。这些密码不应该以明文的形式保存Q它们应该以加密的Ş式保存在数据?/a>中。一般情况下Q大多数pȝQ这其中包括MySQL本n都是使用哈希法Ҏ感数据进行加密的?/p>
哈希加密是单向加密,也就是说Q被加密的字W串是无法得到原字符串的。这U方法用很有限Q一般只使用在密码验证或其它需要验证的地方。在比较时ƈ不是加密字W串q行解密Q而是输入的字符串也使用同样的方法进行加密,再和数据?/a>中的加密字符串进行比较。这样即使知道了法q得C加密字符Ԍ也无法还原最初的字符丌Ӏ银行卡密码是采用的这U方式进行加密?br />
MySQL提供?个函数用于哈希加密:PASSWORD, ENCRYPT, SHA1和MD5。下面让我们试一试这4个函敎ͼ看看会得C么结果。我们以加密字符?pa55word"Zq行说明Q?/p>
让我们先来看看MD5函数 SELECT MD5('pa55word'); +----------------------------------+ | MD5('pa55word') | +----------------------------------+ | a17a41337551d6542fd005e18b43afd4 | +----------------------------------+ 1 row in set (0.13 sec) 下面是PASSWORD函数 SELECT PASSWORD('pa55word'); +----------------------+ | PASSWORD('pa55word') | +----------------------+ | 1d35c6556b8cab45 | +----------------------+ 1 row in set (0.00 sec) 下面是ENCRYPT函数 SELECT ENCRYPT('pa55word'); +---------------------+ | ENCRYPT('pa55word') | +---------------------+ | up2Ecb0Hdj25A | +-------------- 1 row in set (0.17 sec) 上面的每个函数都q回了一个加密后的字W串。ؓ了区分加密字W串的大写Q最好在使用ENCRYPT生成加密字符串时Q将q个字段定义成CHAR BINARYcd?/p>
上面列D?U加密的ҎQ但我认Z用MD5加密是最好的。这是因样做可以明文密码显C在处理列表中或是查询日志中Q这样便于跟t。如下面的INSERT语句使用插入了一条记录,其中的密码用了MD5q行加密Q?/p>
INSERT INTO table1 (user, pw) VALUE ('user1', MD5('password1') ) 可以通过如下的语句进行密码验证: SELECT * FROM table1 WHERE user = 'user1' AND pw = MD5('password1') 哈希加密Ҏ可以很好地对密码q行加密Q用了q种Ҏ加密Q密码将无法 恢复成明文?/p>
·UPDATE
·INDEX
·CREATE
·GRANT
IDENTIFIED BY "password!"
REQUIRE SUBJECT "/C=US/ST=New York/L=Albany/O=Widgets Inc./CN=client-ray.
example.com/emailAddress=raymond@example.com";
REQUIRE ISSUER "/C=US/ST=New+20York/L=Albany/O=Widgets Inc./CN=cacert.example.
com/emailAddress=admin@example.com";
REQUIRE CIPHER "EDH-RSA-DES-CBC3-SHA";
使用MySQLQ?a class="UBBWordLink" target="_blank">安全问题不能不注意。以下是MySQL提示?3个注意事:
1.如果客户端和服务?/a>端的q接需要跨ƈ通过不可信Q?a class="UBBWordLink" target="_blank">|络Q那么就需要用SSH隧道来加密该q接的通信?/p>
2.用set password语句来修改用L密码Q三个步骤,?#8220;mysql -u root”登陆数据?/a>pȝQ然?#8220;mysql> update mysql.user set password=password('newpwd')”Q最后执?#8220;flush privileges”可以了?/p>
3.需要提防的d有,防偷听、篡攏V回放、拒l服务等Q不涉及可用性和定w斚w。对所有的q接、查询、其他操作用基于ACL卌问控制列表的安全措施来完成。也有一些对SSLq接的支持?/p>
4.除了root用户外的其他M用户不允许访问mysql?a class="UBBWordLink" target="_blank">数据?/a>中的user表;
加密后存攑֜user表中的加密后的用户密码一旦泄Ԍ其他人可以随意用该用户名/密码相应?a class="UBBWordLink" target="_blank">数据?/a>Q?/p>
5.用grant和revoke语句来进行用戯问控制的工作Q?/p>
6.不用明文密码,而是使用md5()和sha1(){单向的哈系函数来设|密码;
7.不选用字典中的字来做密码;
8.采用防火墙来L50%的外部危险,?a class="UBBWordLink" target="_blank">数据?/a>pȝw在防火墙后面工作,或放|在DMZ区域中;
9.从因特网上用nmap来扫?306端口Q也可用telnet server_host 3306的方法测试,不能允许从非信Q|络中访?a class="UBBWordLink" target="_blank">数据?/a>服务器的3306号TCP端口Q因此需要在防火墙或路由器上做设定;
10.Z防止被恶意传入非法参敎ͼ例如where ID=234Q别人却输入where ID=234 OR 1=1D全部昄Q所以在web的表单中使用''?"来用字符Ԍ在动态URL中加?22代表双引受?23代表井号?27代表单引P传递未查过的值给mysql数据库是非常危险的;
11.在传递数据给mysql时检查一下大;
12.应用E序需要连接到数据?/a>应该使用一般的用户帐号Q只开攑ְ数必要的权限l该用户Q?/p>
13.在各~程接口(C C++ PHP Perl Java JDBC{?中用特?#8216;逃脱字符’函数Q?/p>
在因特网上用mysql数据库时一定少用传输明文的数据Q而用SSL和SSH的加密方式数据来传输Q?/p>
14.学会使用tcpdump和strings工具来查看传输数据的安全性,例如tcpdump -l -i eth0 -w -src or dst port 3306 | strings。以普通用h启动mysql数据库服务;
15.不用到
16.信在mysql目录中只有启?a class="UBBWordLink" target="_blank">数据?/a>服务的用h可以Ҏ件有d写的权限Q?/p>
17.不许process或super权限付给非管理用P该mysqladmin processlist可以列D出当前执行的查询文本Qsuper权限可用于切断客Lq接、改?a class="UBBWordLink" target="_blank">服务?/a>q行参数状态、控制拷贝复?a class="UBBWordLink" target="_blank">数据?/a>?a class="UBBWordLink" target="_blank">服务?/a>Q?/p>
18.file权限不付l管理员以外的用P防止出现load data '/etc/passwd'到表中再用select 昄出来的问题;
19.如果不相信DNS服务公司的服务,可以在主机名U允许表中只讄IP数字地址Q?/p>
20.使用max_user_connections变量来mysqld服务q程Q对一个指定帐户限定连接数Q?/p>
21.grant语句也支持资源控刉项Q?/p>
22.启动mysqld服务q程?a class="UBBWordLink" target="_blank">安全选项开养I--local-infile=0? 若是0则客LE序无法用local load data了,赋权的一个例子grant insert(user) on mysql.user to 'user_name'@'host_name';若?-skip-grant-tablespȝ对M用户的访问不做Q何访问控Ӟ但可以用mysqladmin flush-privileges或mysqladmin reload来开启访问控Ӟ默认情况是show databases语句Ҏ有用户开放,可以?-skip-show-databases来关闭掉?/p>
23.到Error 1045(28000) Access Denied for user 'root'@'localhost' (Using password:NO)错误Ӟ你需要重新设|密码,具体Ҏ是:先用--skip-grant-tables参数启动mysqldQ然后执行mysql -u root mysql,mysql>update user set password=password('newpassword') where user='root';mysql>Flush privileges;Q最后重新启动mysql可以了?/p>