透明 发表于 2015-1-16 20:13:33

发一篇初学者在利用MySQL时必需懂得的注重事项

DBaaS解决方案可以降低首次投入成本,对于那些小企业来说,他们往往认为内部部署的数据库成本太高,DBaaS的成本和灵活性优势对小企业吸引力更大,他们是云数据库解决方案的重点客户群体。初学者在利用MySQL时必需懂得的注重事项:<Pstyle="TEXT-INDENT:2em">1.假如客户端和服务器真个毗连必要超过并经由过程不成信托的收集,那末就必要利用SSH地道来加密该毗连的通讯。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">2.用setpassWord语句来修正用户的暗码,三个步骤,先“mysql-uroot”上岸数据库体系,然后“mysql>updatemysql.usersetpassword=password(’newpwd’)”,最初实行“flushPRivileges”就能够了。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">3.必要防备的打击有,防偷听、改动、回放、回绝服务等,不触及可用性和容错方面。对一切的毗连、查询、其他操纵利用基于ACL即会见把持列表的平安措施来完成。也有一些对SSL毗连的撑持。<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">4.除root用户外的其他任何用户不同意会见mysql主数据库中的user表;<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">加密后寄存在user表中的加密后的用户暗码一旦保守,其别人能够随便用该用户名/暗码响应的数据库;<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">5.用grant和revoke语句来举行用户会见把持的事情;<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">6.不利用明文暗码,而是利用md5()和sha1()等单向的哈系函数来设置暗码;<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">7.不选用字典中的字来做暗码;<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">8.接纳防火墙往复失落50%的内部伤害,让数据库体系躲在防火墙前面事情,或安排在DMZ地区中;<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">9.从因特网上用nmap来扫描3306端口,也可用telnetserver_host3306的办法测试,不克不及同意从非信托收集中会见数据库服务器的3306号TCP端口,因而必要在防火墙或路由器上做设定;<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">10.为了避免被歹意传进不法参数,比方whereID=234,他人却输出whereID=234OR1=1招致全体显现,以是在web的表单中利用’’或""来用字符串,在静态URL中到场"代表双引号、#代表井号、代表单引号;传送未反省过的值给mysql数据库长短常伤害的;<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">11.在传送数据给mysql时反省一下巨细;<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">12.使用程序必要毗连到数据库应当利用一样平常的用户帐号,只开放多数需要的权限给该用户;<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">13.在各编程接口(CC++phpPerljavaJDBC等)中利用特定‘逃走字符’函数;<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">14.学会利用tcpdump和strings工具来检察传输数据的平安性,比方tcpdump-l-ieth0-w-srcordstport3306|strings。以一般用户来启动mysql数据库服务;<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">15.不利用到表的联合标记,选用的参数--skip-symbolic-links;<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">16.确信在mysql目次中只要启动数据库服务的用户才能够对文件有读和写的权限;<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">17.不准将process或super权限付给非办理用户,该mysqladminprocesslist能够枚举出以后实行的查询文本;super权限可用于割断客户端毗连、改动服务器运转参数形态、把持拷贝复制数据库的服务器;<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">18.file权限不付给办理员之外的用户,避免呈现loaddata’/etc/passwd’到表中再用select显现出来的成绩;<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">19.假如不信任DNS服务公司的服务,能够在主机称号同意表中只设置IP数字地点;<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">20.利用max_user_connections变量来使mysqld服务历程,对一个指定帐户限制毗连数;<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">21.grant语句也撑持资本把持选项;<Pstyle="TEXT-INDENT:2em"><Pstyle="TEXT-INDENT:2em">22.启动mysqld服务历程的平安选项开关,--local-infile=0或1如果0则客户端程序就没法利用localloaddata了,赋权的一个例子grantinsert(user)onmysql.userto’user_name’@’host_name’;若利用--skip-grant-tables体系将对任何用户的会见不做任何会见把持,但能够用mysqladminflush-privileges或mysqladminreload来开启会见把持;默许情形是showdatabases语句对一切用户开放,能够用--skip-show-databases来封闭失落。<Pstyle="TEXT-INDENT:2em">23.碰着Error1045(28000)accessDeniedforuser’root’@’localhost’(Usingpassword:NO)毛病时,你必要从头设置暗码,详细办法是:先用--skip-grant-tables参数启动mysqld,然后实行mysql-urootmysql,mysql>updateusersetpassword=password(’newpassword’)whereuser=’root’;mysql>Flushprivileges;,最初从头启动mysql就能够了。
应用程序需要使用数据库,数据库本身需要设计、开发和部署。还有MySQL学习教程,客户怎样实施混合系统,或者需要帮助管理多个云服务?

灵魂腐蚀 发表于 2015-1-25 17:36:05

始终遗憾SQLServer的登陆无法分配CPU/内存占用等指标数。如果你的SQLServer给别人分配了一个只可以读几个表的权限,而这个家伙疯狂的死循环进行连接查询,会给你的系统带来很大的负担。

柔情似水 发表于 2015-2-3 12:15:20

可能有的朋友会抱怨集成的orderby,其实如果使用ranking函数,Orderby是少不了的。如果担心Orderby会影响效率,可以为orderby的字段建立聚集索引,查询计划会忽略orderby操作(因为本来就是排序的嘛)。

小魔女 发表于 2015-2-8 22:05:48

微软对CLR作了大篇幅的宣传,这是因为数据库产品终于融入.net体系中。最开始我们也是狂喜,感觉对象数据库的一些概念可以实现了。

精灵巫婆 发表于 2015-2-26 11:56:10

索引视图2k就有。但是2005对其效率作了一些改进但是schema.viewname的作用域真是太限制了它的应用面。还有一大堆的环境参数和种种限制都让人对它有点却步。

若天明 发表于 2015-3-8 14:52:47

如果处理少量数据,比如几百条记录的数据,我不知道这两种情况哪个效率更高,如果处理大量数据呢?比如有表中有20万条记录.

仓酷云 发表于 2015-3-16 03:10:27

总感觉自己还是不会SQL

再见西城 发表于 2015-3-22 19:20:25

不过话说回来了,绝大多数的性能优化准则与对sqlserver存储的结构理解息息相关
页: [1]
查看完整版本: 发一篇初学者在利用MySQL时必需懂得的注重事项