发布MySql办理的一点心得
MySQL数据库归MySQLAB公司所有,但是这个软件是开源的,有一个MySQL学习教程可以免费下载。稍俱常识的新入门者都可以轻松实现在一个常见硬件上安装和配置MySQL。MySQL数据库是中小型网站背景数据库的首选,由于它对非贸易使用是收费的.网站开辟者能够搭建一个"linux+Apache+php+MySql"平台,这是一个最省钱的高效平台.在利用MySql举行开辟时,MySql自带的文档关于老手来讲是份很好的参考材料.本文是我在利用MySql中的小当心得。 MySql数据库是中小型网站背景数据库的首选,由于它对非贸易使用是收费的.网站开辟者能够搭建一个"Linux+Apache+PHP+MySql"平台,这是一个最省钱的高效平台.在利用MySql举行开辟时,MySql自带的文档关于老手来讲是份很好的参考材料.本文是我在利用MySql中的小当心得。以后一样平常用户的开辟情况多是Windows或Linux,在windows中MySql以服务情势存在,在利用前应确保此服务已启动,未启动可用netstartmysql命令启动。而Linux中启动时可用“/etc/rc.d/init.d/mysqldstart"命令,注重启动者应具有办理员权限。
刚安装好的MySql包括一个含空暗码的root帐户和一个匿名帐户,这是很年夜的平安隐患,关于一些主要的使用我们应将平安性尽量进步,在这里应把匿名帐户删除、root帐户设置暗码,可用以下命令举行:
usemysql;
deletefromUserwhereUser="";
updateUsersetPassWord=PASSWORD(newpassword)whereUser=root;
假如要对用户所用的登录终端举行限定,能够更新User表中响应用户的Host字段,在举行了以上变动后应从头启动数据库服务,此时登录时可用以下相似命令:
mysql-uroot-p;
mysql-uroot-pnewpassword;
mysqlmydb-uroot-p;
mysqlmydb-uroot-pnewpassword;
下面命令参数是经常使用参数的一部分,具体情形可参考文档。此处的mydb是要登录的数据库的称号。
在举行开辟和实践使用中,用户不该该只用root用户举行毗连数据库,固然利用root用户举行测试时很便利,但会给体系带来严重平安隐患,也倒霉于办理手艺的进步。我们给一个使用中利用的用户付与最得当的数据库权限。如一个只举行数据拔出的用户不该付与其删除数据的权限。MySql的用户办理是经由过程User表来完成的,增加新用户经常使用的办法有两个,一是在User表拔出响应的数据行,同时设置响应的权限;二是经由过程GRANT命令创立具有某种权限的用户。个中GRANT的经常使用用法以下:
grantallonmydb.*toNewUserName@HostNameidentifiedby"password";
grantusageon*.*toNewUserName@HostNameidentifiedby"password";
grantselect,insert,updateonmydb.*toNewUserName@HostNameidentifiedby"password";
grantupdate,deleteonmydb.TestTabletoNewUserName@HostNameidentifiedby"password";
若要给此用户付与他在响应工具上的权限的办理才能,可在GRANT前面增加WITHGRANTOPTION选项。而关于用拔出User表增加的用户,Password字段使用PASSWORD函数举行更新加密,以防不轨之人偷窥暗码。关于那些已不必的用户应赐与扫除,权限过界的用户应实时接纳权限,接纳权限能够经由过程更新User表响应字段,也能够利用REVOKE操纵。
全局办理权限:
FILE:在MySQL服务器上读写文件。
PROCESS:显现或杀逝世属于别的用户的服务线程。
RELOAD:重载会见把持表,革新日记等。
SHUTDOWN:封闭MySQL服务。
数据库/数据表/数据列权限:
ALTER:修正已存在的数据表(比方增添/删除列)和索引。
CREATE:创建新的数据库或数据表。
DELETE:删除表的纪录。
DROP:删除数据表或数据库。
INDEX:创建或删除索引。
INSERT:增添表的纪录。
SELECT:显现/搜刮表的纪录。
UPDATE:修正表中已存在的纪录。
出格的权限:
ALL:同意做任何事(和root一样)。
USAGE:只同意登录--别的甚么也不同意做。
最初给出自己在RedHat9.0下的MySql操纵演示:
选用数据库的root用户登录
$mysql-uroot-p
Enterpassword:MyPassword
mysql>createdatabasemydb;
QueryOK,1rowaffected(0.02sec)
mysql>usemydb;
Databasechanged
mysql>createtableTestTable(Idintaut_incrementprimarykey,
UserNamevarchar(16)notnull,
Addressvarchar(255));
QueryOK,0rowsaffected(0.02sec)
mysql>grantallonmydb.*totest@localhostidentifiedby"test";
QueryOK,0rowsaffected(0.01sec)
mysql>quit
Bye
$mysqlmydb-utest-ptest
个中test.sql是用vi编纂好的SQL剧本,其内容为:
InsertintoTestTable(UserName,Address)values(Tom,shanghai);
InsertintoTestTable(UserName,Address)values(John,beijing);
select*fromTestTable;
运转已编纂好的SQL剧本能够用sourcefilename或.filename。
以上只是对老手的复杂实习,要成为一个数据库妙手,当以废寝忘食地寻求常识,不休地思索、实验、再思索。
如果你在一个遵循GPL的自由(开源)项目中使用MySQL,那么你可以遵循GPL协议使用MySQL。然而,如果你的项目不是在GPL协议下的话,你必须为使用MySQL来支付许可费用,或者你可能因为这个因素而将你的项目改为遵循GPL。 groupby子句可以将查询结果分组,并返回行的汇总信息Oracle按照groupby子句中指定的表达式的值分组查询结果。 也可谈一下你是怎么优化存储过程的? 作了些试验,发现使用CLR的存储过程或函数在达到一定的阀值的时候,系统性能会呈指数级下滑!这是非常危险的!只使用几个可能没有问题,当一旦大规模使用会造成严重的系统性能问题! 然后最好有实践机会,能够把实践到的和实践结合起来,其实理论思考是个非常困扰和痛苦的事情 发几份SQL课件,以飨阅者 如果,某一版本可以提供强大的并发响应,但是没有Oracle的相应版本稳定,或者价格较贵,那么,它就是不适合的。 SQL语言是学习所有数据库产品的基础,无论你是做数据库管理还是做数据库开发都是这样。不过具体学习的侧重点要看你将来做哪一块,如果是做数据库管理(DBA),侧重点应该放在SQLServer的系统管理上.
页:
[1]