1、上?/span>mysql-5.5.8-linux2.6-x86_64.tar.gz?/span>Web服务器的/usr/local/目录?/span>
2、解压ƈ重命?/span>
# cd /usr/local # tar –xvzf mysql-5.5.8-linux2.6-x86_64.tar.gz # mv mysql-5.5.8-linux2.6-x86_64 mysql |
3、配|?/span>/etc/my.cnf
1Q安装操作系l时如果安装?/span>MySql׃生成/etc/my.cnfQ而系l自带的MySql版本较低Q所以替换已有的/etc/my.cnfQ替换之前可以备?/span>my.cnf
#mv /etc/my.cnf /etc/my.cnf_bak # cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf |
2Q编?/span>/etc/my.cnfQ配|?/span>IPq接Q在mysqld中加入下边的U色字体
#vi /etc/my.cnf [mysqld] port = 3306 socket = /tmp/mysql.sock skip-name-resolve skip-external-locking |
3Q保存,退出?/span>
4、添?/span>mysql用户和用L
如果pȝ已经安装?/span>mysqlQ则在添?/span>mysql用户和用L的时候会提示mysql用户Q或用户l)已经存在Q这U提C是正常的?/span>
# groupadd mysql # useradd -g mysql mysql |
5、修?/span>mysql目录权限
1Q设?/span>root用户可以讉K
# chown -R root /usr/local/mysql |
2Q设?/span>mysqll和mysql用户能访?/span>/usr/local/mysql?/span>/usr/local/mysql/data
# chgrp -R mysql /usr/local/mysql #chown -R mysql /usr/local/mysql/data |
6、创?/span>mysqlpȝ数据?/span>
# cd /usr/local/mysql #./scripts/mysql_install_db --user=mysql& |
7、?/span>mysql用户启动mysqld
#/usr/local/mysql/bin/mysqld_safe -user=mysql& |
8、设?/span>MySql?/span>root用户的密?/span>
假设root用户的密码ؓ123456Q根据实际环境自行设?/span>
#/usr/local/mysql/bin/mysqladmin -u root password 123456 |
9、?/span>root用户dMySql
Ҏ(gu)步骤8讑֮的用户密码登?/span>mysql
# cd /usr/local/mysql/bin #./mysql -u root -p Enter password: |
10、开?/span>mysqlq程讉K
1Q赋?/span>root用户q程讉K权限
# grant all privileges on *.* to root @"%" identified by "123456"; #flush privileges; |
2Q参数说?/span>
a) grant all privilegesQ赋予所有权限,all可以替换为相x作;
b) *.*Q说明数据库和表名,*代表所有;
c) rootQ说明是lroot用户讑֮权限Q可以替换ؓ其他用户Q?/span>
d) %Q这里是Host名称Q允许所有的q%Q?/span>
e) 123456Q是root用户的密码;
f) flush privilegesQ是把新赋权限表h加蝲到内存,可以理解为即时生效?/span>
11、配|?/span>MySql自动启动
~辑/etc/rc.d/rc.local文gQ在文g最底端加入启动语句
# vi /etc/rc.d/rc.local …… /usr/local/mysql/bin/mysqld_safe -user=mysql& |
以MySQL-server-4.0.14-0.i386.rpmZQ放?data目录?/p>
cd /data
rpm -ivh MySQL-server-4.0.14-0.i386.rpm
安装完成后在/usr/share/mysql目录中会有一个mysql的启动脚本mysql.server及示例配|文件等(如my-huge.cnf、my-large.cnf、my-medium.cnf)
拯一个示例配|文件作为mysql的配|文Ӟ
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
rpm包安装完后自动将mysql安装成系l服务,所以可以用下面命令启动、停止mysql
启动mysql
/etc/init.d/mysql start ? service mysql start
停止mysql
/etc/init.d/mysql stop ? service mysql stop
到此Qmysql服务安装配|完成?/p>
安装mysql客户?/p>
rpm -ivh MySQL-client-4.0.14-0.i386.rpm
mysql安装好后目录l构如下Q?/p>
工具E序?usr/bin目录?--ls /usr/bin/mysql*
数据目录/var/lib/mysql
默认情况下mysql错误日志文件、二q制日志文g及进E文件写?var/lib/mysql目录?如localhost.err、localhost.pid、localhost-bin.001{?/p>
要改变这些情况可以修?etc/my.cnf文g
如将日志文g写在/var/log目录中,可以在my.cnf文g中加入下面两行:
[mysqld_safe]
err-log = /var/log/mysqld.log
有个实用E序/usr/bin/mysql_install_dbQ该E序可以用来初始? mysql数据?/a>Q即创徏/var/log/mysql目录Q及创徏mysql数据?mysql授权表等信息)及test数据?I库),如果不小心删 除了/var/log/mysql目录可以通过该程序来初始?
卸蝲mysql
rpm -qa|grep -i mysql
rpm -ev MySQL-server-4.0.14-0 MySQL-client-4.0.14-0
卸蝲?var/lib/mysql中的数据?etc/my.cnf不会删除Q如果确定没用后手工删?/p>
rm -f /etc/my.cnf
rm -rf /var/lib/mysql
SQL Server数据库与Oracle数据库之间最大的区别要属表空间设计。Oracle数据库开创性地提出了表I间的设计理念,qؓOracle数据库的高性能做出了不可磨灭的贡献。可以这么说QOracle中很多优化都是基于表I间的设计理念而实现的?/p>
典型应用一Q控制用h占用的表I间配额?/strong>
在一些大型的数据库应用中Q我们需要控制某个用h者某一l用户其所占用的磁盘空间。这好像在文g服务?/a>中,需要ؓ每个用户讄盘配额一P以防?a style="color: #000000" title="盘" target="_blank">盘I间耗竭。所以,在数据库中,我们也需要限制用h可以使用的磁盘空间大。ؓ了达到这个目的,我们可以通过表空间来实现?/p>
我们可以在Oracle数据库中Q徏立不同的表空_为其讄最大的存储定wQ然后把用户归属于这个表I间。如此的话,q个用户的存储容量,受到这个表I间大小的限制?/p>
典型应用二:控制数据库所占用的磁盘空间?/strong>
有时候,在Oracle数据?a style="color: #000000" title="服务? target="_blank">服务?/a>中,可能q行的不止一个服务。除了数据库服务器外Q可能还有邮件服务器{应用系l服务器。ؓ此,需要先对Oracle数据库的盘I间作个规划Q否则,当多个应用程序服务所占用的磁盘空间都无限增加Ӟ最后可能导致各个服务都因ؓ盘I间的耗竭而停止。所以,在同一台服务器上用多个应用程序服务,我们往往需要先l他们进行磁盘空间的规划和分配。各个服务都不能够超q我们分配给他的最大限额,或者超q后及时的提醒我们。只有这P才能够避免因为磁盘空间的耗竭而导致各U应用服务的崩溃?/p>
典型应用三:灉|攄表空_提高数据库的输入输出性能?/strong>
数据库管理员q可以将不同cd的数据放|到不同的表I间中,q样可以明显提高数据库输入输出性能Q有利于数据的备份与恢复{管理工作。因为我们数据库理员在备䆾或者恢复数据的时候,可以按表I间来备份数据。如在设计一个大型的分销pȝ后台数据库的时候,我们可以按省份徏立表I间。与江省相关的数据文g攄在浙江省的表I间中,北京发生业务记录Q则记录在北京这个表I间中。如此,当浙江省的业务数据出现错误的时候,则直接还原浙江省的表I间卛_。很明显Q这栯计,当某个表I间中的数据出现错误需要恢复的时候,可以避免对其他表I间的媄响?/p>
另外Q还可以对表I间q行独立备䆾。当数据库容量比较大的时候,若一下子Ҏ(gu)个数据库q行备䆾Q显然会占用比较多的旉。虽然说Oracle数据库支持热备䆾Q但是在备䆾期间Q会占用比较多的pȝ资源Q从而造成数据库性能的下降。ؓ此,当数据库定w比较大的时候,我们需要进行设|多个表I间Q然后规划各个表I间的备份时_从而可以提高整个数据库的备份效率,降低备䆾对于数据库正常运行的影响?/p>
典型应用四:大表的排序操作?/strong>
我们都知道,当表中的记录比较多的时候,对他们进行查询,速度会比较慢。第一ơ查询成功后Q若再对其进行第二次重新排序Q仍焉要这么多的时间。ؓ此,我们在数据库设计的时候,针对q种定w比较大的表对象,往往把它攑֜一个独立的表空_以提高数据库的性能?/p>
典型应用五:日志文g与数据文件分开放,提高数据?/strong>安全性?/strong>
默认情况下,日志文g与数据文件存攑֜同一表空间。但是,q对于数据库安全斚w来说Q不是很好。所以,我们在数据库设计的过E中Q往往喜欢把日志文Ӟ特别是重做日志文Ӟ攑֜一个独立的表空间中Q然后把它存攑֜另外一块硬盘上。如此的话,当存放数据文件的盘出现故障Ӟ能够马上通过存放在另一个表I间的重做日志文ӞҎ(gu)据库q行修复Q以减少企业因ؓ数据丢失所带来的损失?/p>
当然Q表I间的优势还不仅仅这些,企业对于数据库的性能要求高Q或者数据库定w大Q则表空间的优势׃大?/p>
下面Q我们就具体来看看Oracle数据库中表空间的处理方式Q看其在性能与安全性方面是否有_的优势与SQL Server数据库抗衡?/p>
在数据库设计的时候,我们数据库管理员按如下顺序设|表I间?/p>
W一步:建立表空间?/strong>
在设计数据库的时候,首先需要设计表I间。我们需要考虑Q是只徏立一个表I间呢,q是需要徏立多个表I间Q以及各个表I间的存放位|、磁盘限额等{?/p>
到底设计多少个表I间合理Q没有统一的说法,q主要根据企业的实际需求去判断。如企业需要对用户q行盘限额控制的,则就需要根据用L数量来设|表I间。当企业的数据容量比较大Q而其又对数据库的性能有比较高的要求时Q就需要根据不同类型的数据Q设|不同的表空_以提高其输入输出性能?/p>
W二步:建立用户Qƈ制定用户的默认表I间?/strong>
在徏立用L时候,我们数据库管理员要指定用L默认表空间。因为我们在利用CREATE语句创徏数据库对象,如数据库表的时候,光认是存储在数据库的当前默认空间。若不指定用户默认表I间的话Q则用户每次创徏数据库对象的时候,都要指定表空_昄Q这q不是很合理?/p>
另外要注意,不同的表I间有不同的权限控制。用户对于表I间Ah完全控制权限Q可能对于表I间B只有查询权限,甚至q连接的权限的都没有。所以,合理为用户配|表I间的访问权限,也是提高数据库安全性的一个方法?/p>
?.监听服务没有赯v来。windowsq_个一如下操作Q开?--E序---理工具---服务Q打开服务面板Q?
启动oraclehome92TNSlistener服务?/p>
?.database instance没有赯v来。windowsq_如下操作Q开?--E序---理工具---服务Q打开服务
面板Q启动oracleserviceXXXX,XXXX是你的database SID.
?.注册表问题。regeditQ然后进入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0该环境变量ORACLE_SID讄为XXXX,XXXX是你的database SID.或者右几我的电(sh)脑,属?-高--环境变量---pȝ变量--新徏Q变量名=oracle_sid,变量?XXXX,XXXX是你的database SID.或者进入sqlplus前,在command line?
输set oracle_sid=XXXX,XXXX是你的database SID.l过以上步骤Q就可以解决问题了?/p>
本来的目标是 MAX(...) Q结?q么一?HQL 语句L得不到结构:
string query = "SELECT MAX(ID) FROM Student";
另外两句Q?SELECT MAX(Student.ID) FROM Student " ?"SELECT MAX(ID) FROM Student AS stud";
同样得不到结果,q回的的均是 Student 对象集合
刚开始以Z支持 MAX 函数Q但是SELECT COUNT() FROM Student Q就可以正确q回U律敎ͼ而且很多文档也多证明了HQL支持ANSI SQL集合函数Q?/p>
l于发现 只有 "SELECT MAX(stud.ID) FROM Student AS stud";
当然 "SELECT MAX(stud.ID) FROM Student stud" 也是正确?/p>
转蝲h明出处:http://blog.csdn.net/Jinglecat/archive/2005/08/03/445296.aspx
单的例子Q?/p>
删除q程语法Q?/font>
2、创建函数的语法Q?/p>
单函数的例子Q?/p>
删除函数语法Q?/font>