若相依 发表于 2015-1-16 20:10:34

发布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。

小妖女 发表于 2015-1-18 18:19:43

groupby子句可以将查询结果分组,并返回行的汇总信息Oracle按照groupby子句中指定的表达式的值分组查询结果。

只想知道 发表于 2015-1-27 08:10:47

也可谈一下你是怎么优化存储过程的?

爱飞 发表于 2015-2-5 06:52:23

作了些试验,发现使用CLR的存储过程或函数在达到一定的阀值的时候,系统性能会呈指数级下滑!这是非常危险的!只使用几个可能没有问题,当一旦大规模使用会造成严重的系统性能问题!

金色的骷髅 发表于 2015-2-11 08:02:41

然后最好有实践机会,能够把实践到的和实践结合起来,其实理论思考是个非常困扰和痛苦的事情

灵魂腐蚀 发表于 2015-3-2 01:13:45

发几份SQL课件,以飨阅者

柔情似水 发表于 2015-3-11 01:38:01

如果,某一版本可以提供强大的并发响应,但是没有Oracle的相应版本稳定,或者价格较贵,那么,它就是不适合的。

海妖 发表于 2015-3-24 21:05:01

SQL语言是学习所有数据库产品的基础,无论你是做数据库管理还是做数据库开发都是这样。不过具体学习的侧重点要看你将来做哪一块,如果是做数据库管理(DBA),侧重点应该放在SQLServer的系统管理上.
页: [1]
查看完整版本: 发布MySql办理的一点心得