仓酷云

标题: PHP网页编程之MySQL办事器的启动与中断 [打印本页]

作者: 透明    时间: 2015-2-4 00:18
标题: PHP网页编程之MySQL办事器的启动与中断
应该大致熟悉了一些学习过程,也许我的过程和你的有些出路,但是不管怎么样是殊途同归,我写这么多,也只是给大家一个借鉴的机会,至于好与不好,默默不敢打包票^0^mysql|办事器   MySQL办事器的启动与中断


[晏子]1、以非特权用户运转MySQL办事器


在会商若何启动MySQL办事器之前,让咱们思索一下应当以甚么用户身份运转MySQL办事器。办事器可以手动或主动启动。假如你手动启动它,办事器以你登录Unix(Linux)的用户身份启动,即假如你用paul登录Unix并启动办事器,它用paul运转;假如你用su号令切换到root,然后运启动办事器,则它以root运转。但是,大多半情形下你能够不想手动启动办事器,最有多是你布置MySQL办事器在体系引诱时主动启动,作为尺度引诱进程的一局部,在Unix下,该引诱进程由体系的Unix用户root履行,而且任安在该过程当中运转的历程均以root权限运转。
你应当切记MySQL办事器启动进程的两个方针:

要一个通俗的非特权用户运转办事器,依照以下步调:
当你设置数据目次及其内容的属主和形式时,注重符号毗连。你需求顺着它们并改动它们指向的文件或目次的属主和形式。假如毗连文件的目次位于不属于你的中央,会有些费事,你能够需求root身份。
在你完成了上述进程后,你应当确保老是在以mysqladm或root登录时启动办事器,在后者,肯定指定--user=mysqladm选项,使办事器能将其用户ID切换到mysqladm(同时也合用于体系启动进程)。
--user选项在MySQL 3.22中引入,假如你有老版本,你可使用su号令告知体系在以root运转时在特定的用户下运转办事器。2、启动办事器的办法


在咱们肯定了用于运转办事器的账号后,你可以选择若何布置启动办事器。你可以从号令行手动或在体系引诱过程当中主动地运转它。关于启动办事器由三种次要办法:

safe_mysqld剧本装置在MySQL装置目次的bin目次下,或可在MySQL源代码分发的scripts目次下找到。mysql.server剧本装置在MySQL装置目次下的share/mysqld目次下或可以在MySQL源代码分发的support_files目次下找到。假如你想利用它们,你需求将它们拷贝到恰当的目次下。
对BSD作风的体系(FreeBSD,OpenBSD等),凡是在/etc目次下有几个文件在引诱时初始化办事,这些文件凡是有以“rc”开首的名字,且它有能够由一个名为“rc.local”的文件(或相似的器材),特地用于启动当地装置的办事。在如许的体系上,你能够将相似于以下的行到场rc.local文件中以启动办事器(假如safe_mysqld的目次在你的体系上分歧,修正它便可):
  1. if [ -x /usr/local/bin/safe_mysqld ]; then  /usr/local/bin/safe_mysqld &fi
复制代码
关于关于System V作风的体系,你可以经由过程将mysql.server放在/etc下恰当的启动目次上去装置它。假如你运转Linux并从一个RPM文件装置MySQL,这些已为你做好了,不然将剧本装置在主启动目次下,并将指向它的毗连放在恰当的运转级别目次下。你也能够使剧本只能由root启动。
启动文件的目次结构各体系分歧,所以你需求反省一下看看你的体系若何组织它们。例如在Linux PPC上,目次是/etc/rc.d和/etc/rc.d/rc3.d,如许你可以如许装置剧本:
  1. #cp mysql.server /etc/rc.d/init.d#cd /etc/init.d#chmod 500 mysql.server#cd /etc/rc.d/rc3.d#ln -s ../init.d/mysql.server S99mysql
复制代码
在solaris上,主剧本目次是/etc/init.d,而且运转级别目次是/etc/rd2.d,所以号令看上去像如许:
  1. #cp mysql.server /etc/rc.d/init.d#cd /etc/init.d#chmod 500 mysql.server#cd /etc/rc2.d#ln -s ../init.d/mysql.server S99mysql
复制代码
在体系启动时,S99mysql剧本将主动用一个start参数挪用。假如你有chkconfig号令(Linux上有),你可以由它匡助装置mysql.server剧本而不是象下面那样手工运转上述号令。2.1 指定启动选项


假如你想在办事器启动时指定额定的启动选项,你可有两种办法。你可以修正你利用的启动剧本(safe_mysqld或mysql.server)并直接在挪用办事器的行上指定选项,或在一个选项文件中指定选项。建议你假如能够在一个全局选项文件中指定选项,它凡是位于/etc/my.cnf(Unix)或c:\my.cnf(Windows)。
某些品种的信息没法以办事器选项指定。关于这些你能够需求修正safe_mysqld。例如,假如你的办事器不克不及准确选择当地时区而以GMT前往工夫值,你可以设置TZ情况变量给它一个唆使。假如你用safe_mysqld或mysql.server启动办事器,你可以将一个时区设置加到safe_mysqld。找到启动办事器的行并在该行前到场以下号令:
  1. TZ=US/Centralexport TZ
复制代码
下面号令的语法是Solaris的,关于其他体系语法能够分歧,请查阅相干手册。假如你的确修正了你的启动剧本,要记住下次你装置MySQL时(如晋级到新版本),你的修正将得到,除非你起首在别处复制了启动剧本。在装置了新版本后,对照新旧版本的剧本,看看你需求重建甚么改动。2.2 在启动时反省你的表


除布置你的办事器在体系引诱时启动,你能够要装置myisamchk和isamchk剧本,以在办事器启动前反省你的表。你能够在一个溃散后重启,有能够表已伤害,在启动前反省它是一个发明成绩的好办法。3、中断办事器


要手工启动办事器,利用mysqladmin:
%mysqladmin shutdown
要主动中断办事器,你不需做出格的工作。BSD体系普通经由过程向历程发一个TERM旌旗灯号中断办事,它们或准确应对它或被卤莽地杀逝世。mysqld在它收到这个旌旗灯号时以终止作为应对。关于用mysql.server启动办事器的System V作风的体系,中断历程将用一个stop参数挪用该剧本,告知办事器终止,固然假定你已装置了mysql.server。4、假如你不克不及毗连办事器,若何从头取得对办事器的掌握


在某些情形下,你能够因为不克不及毗连它而手工重启办事器。固然,这有点抵触。由于普通你经由过程毗连办事器而手工关失落它,那末这类情形若何会呈现。
起首,MySQL root口令可以已设置为你不晓得的值,这能够产生在你修正口令时,例如,假如你在输出新口令时偶尔键入一个不成见的掌握字符。你也能够健忘口令。
其次,毗连localhost凡是经由过程一个Unix域套接字文件停止,通常为/tmp/mysql.sock。假如套接字文件被删除,当地客户就不克不及毗连。这能够产生在你的体系运转一个cron义务删除/tmp下的一时文件。
假如你由于丧失套接字文件而不克不及毗连,你可以复杂地经由过程重启办事重视新创立失掉它。由于办事器在启动时从头创立它。这里的圈套是你不克不及用套接字创立毗连由于它不见了,你必需创立一个TCP/IP毗连,例如,假如办事器主机是pit.snake.net,你可以如许毗连:
%mysqladmin -p -u root -h pit.snake.net shutdown
假如套接字文件被一个cron义务删除,成绩将反复呈现,除非你修正cron义务或利用一个或利用一个分歧的套接字文件,你可使用全局选项文件指定一个分歧的套接字,例如,假如数据目次是/usr/local/var,你可以经由过程将以下行到场/etc/my.cnf中,将套接字文件移到那边:
  1. [mysqld]socket=/usr/local/var/mysql.sock[client]socket=/usr/local/var/mysql.sock
复制代码
对办事器和客户均指定途径名,使得它们都利用统一个套接字文件。假如你只为办事器设置途径,客户法式将依然希冀在原地位履行套接字,在修正后重启办事器,使它在新地位创立套接字。
假如你因为健忘root口令或已将它设置为分歧于以为的值而不克不及毗连,你需求从头取得对办事器的掌握,是你能再次设置口令:
5、运转多个办事器


大多半再一台给定的机械上运转单个MySQL办事器,但在良多情形下,运转多个办事器是很有效的:

很天然地,运转多个办事器比只运转一个办事器要庞杂很多。假如你装置多个版本,你不克不及在统一个中央装置一切器材。当办事器运转时,某些参数必需或极可能对每一个办事器是独一的,它们包含办事器在哪装置、其数据目次的途径名、TCP/IP端口和UNIX域套接字途径名和用于运转办事器的UNIX账号(假如你不再统一账号下运转一切办事器)。假如你决意运转多个办事器,必定要注重你利用的参数,是你不至于丧失对所产生的工作的踪影。5.1 设置装备摆设和装置多个办事器


假如你要运转分歧版本的办事器而不是统一版本的多个实例,你必需在分歧地址装置它们。假如你装置二进制分发(不必RPM),它们将装置在包括分歧版本号的目次名下。假如你从源代码装置,最复杂的办法是在每一个版本运转configure设置装备摆设MySQL装置过程当中利用--with-prefix选项使得分歧分发分隔,这将使得一切器材装置在一个独自的目次下,你可以将目次域分发版本号接洽起来,如,你可以象如许设置装备摆设一个MySQL分发,个中version是MySQL版本号:
%.configure --with-prefix=/usr/local/mysql-version
--with-prefix选项也决意了办事器的一个独一数据目次。你能够想加上其它办事器特定的选项,如TCP/IP端标语和套接字途径名(--with-tcp-port和--with-unix-socket)。
假如你想运转统一版本办事器的多个实例,任何须须基于一个办事器特定设置的选项将需求在运转时指定。5.2 多办事器的启动进程


启动多个办事器比利用一个办事器要庞杂。由于safe_mysqld和mysql.server均在单个办事器设置上任务得最好。建议你细心研讨一下safe_mysqld并用它作为你的启动进程的基本,利用你修正的版本,你能针对你本人的需求更准确地裁剪它。
你必需处置的一个成绩是若何在选项文件(my.cnf)中指定选项。关于多办事器,你不克不及关于每一个分歧的办事器设置利用/etc/my.cnf,你只能对一切办事器不异的设置利用该文件。假如办事器有一个分歧的编译出来的数据目次地位,你可以在每一个办事器数据目次中的my.cnf中指定一切办事器要利用的设置,而利用DATADIR/my.cnf指定办事器特定的设置,这里DATADIR以办事器分歧而分歧。
另外一种指定办事器选项的办法是用--default-file=path_name作为号令行的第一个选项,告知办事器从名为path_name中的文件中读取选项,如许你可以把一个办事器选项放在一个对该办事器独一的文件中,然后告知办事器在启动时读取该文件。注重,假如你指定这个选项,将不利用凡是的选项文件如/etc/my.cnf的任何一个。
  通过这段时间的学习实践,对软件开发有了更多新的认识,不在局限于之前的片面性。当然,现在所学到的东西其实并不多,离当一个真正的程序员,还有很大的差距。
作者: 精灵巫婆    时间: 2015-2-9 22:20
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
作者: 谁可相欹    时间: 2015-2-28 00:44
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
作者: 若相依    时间: 2015-3-8 16:33
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
作者: 蒙在股里    时间: 2015-3-16 05:08
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
作者: 冷月葬花魂    时间: 2015-3-18 03:38
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
作者: 小妖女    时间: 2015-3-22 20:55
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
作者: 透明    时间: 2015-3-28 04:52
爱上php,他也会爱上你。
作者: 金色的骷髅    时间: 2015-3-28 14:08
你很难利用原理去编写自己的代码。对于php来说,系统的学习我认为还是很重要的,当你有一定理解后,你可你针对某种效果研究,我想那时你不会只是复制代码的水平了。
作者: 莫相离    时间: 2015-3-31 23:09
遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。
作者: 简单生活    时间: 2015-4-21 15:51
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
作者: 飘灵儿    时间: 2015-4-26 07:12
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
作者: 爱飞    时间: 2015-4-27 09:14
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
作者: 因胸联盟    时间: 2015-4-27 23:57
兴趣是最好的老师,百度是最好的词典。
作者: 活着的死人    时间: 2015-5-6 18:09
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
作者: 再现理想    时间: 2015-5-8 14:17
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
作者: 海妖    时间: 2015-5-8 14:56
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
作者: 灵魂腐蚀    时间: 2015-6-27 17:53
做为1门年轻的语言,php一直很努力。
作者: 第二个灵魂    时间: 2015-6-28 21:21
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2