MYSQL网站制作之Mysql服务器的启动与中断(一)
事实上,在任何DBaaS中,解决方案提供商对如何管理物理资源都没有控制权,因此MySQL学习教程可能会发现由于DBaaS的局限性使得他们提供给客户的远远小于客户所期望的。mysql|服务器在会商怎样启动MySQL服务器之前,让我们思索一下应当以甚么用户身份运转MySQL服务器。服务器能够手动或主动启动。假如你手动启动它,服务器以你登录Unix(Linux)的用户身份启动,即假如你用paul登录Unix并启动服务器,它用paul运转;假如你用su命令切换到root,然后运启动服务器,则它以root运转。但是,年夜多半情形下你大概不想手动启动服务器,最有多是你布置MySQL服务器在体系引诱时主动启动,作为尺度引诱历程的一部分,在Unix下,该引诱历程由体系的Unix用户root实行,而且任安在该过程当中运转的历程均以root权限运转。你应当切记MySQL服务器启动历程的两个方针:你想让服务器以某个非root用户运转。一样平常地,你想限定任何运转历程的才能,除非的确必要root权限,而MySQL不必要。
你想让服务器一直以统一个用户运转,此时用一个用户而其他时分以另外一个分歧的用户运转服务器是很不便利的,这形成了为文件和目次以具有分歧属主的数据目次下被创立,并大概招致服务器不克不及会见数据库或表,这看你以哪一个用户运转。一致用统一个用户运转服务器是你制止这个成绩。
要一个一般的非特权用户运转服务器,依照以下步骤:
选择一个用于运转服务器的用户,mysqld能够用任何用户运转。但在观点上较明晰的是为MySQL操纵创立一个独自的用户。你也能够出格为MySQL选择一个用户组。本文利用mysqladm和mysqlgrp分离作为用户名和用户组名。
假如你已在本人的账号下安装好了MySQL且没有体系上的特别办理权限,你将大概在你本人的用户ID下运转服务器。在这类情形下,用你本人的登录名和用户组取代mysqladm和mysqlgrp。
假如你在RedHatLinux上用rpm文件安装MySQL,该安装将主动创立一个名为mysql的账号,用该账号取代mysqladm。
假如需要,用体系一般的创立用户的历程创立服务器账号,你必要用root做它。
假如服务器在运转,中断它。
修正数据目次和任何子目次和文件的属主,如许使得mysqladm用户具有它们。比方,假如数据目次是/usr/local/var,你能够以下设置mysqladm的属主(你必要以root运转这些命令):
#cd/usr/local/var
#chown-Rmysqladm.mysqlgrp
修正数据目次和任何子目次和文件的权限,使得它们只能由mysqladm用户会见。假如数据目次是/usr/local/var,你能够设置由mysqladm具有的任何器材:
#cd/usr/local/var
#chmod-Rgo-rwx
当你设置数据目次及其内容的属主和形式时,注重标记毗连。你必要顺着它们并改动它们指向的文件或目次的属主和形式。假如毗连文件的目次位于不属于你的中央,会有些贫苦,你大概必要root身份。
在你完成了上述历程后,你应当确保老是在以mysqladm或root登录时启动服务器,在后者,断定指定--user=mysqladm选项,使服务器能将其用户ID切换到mysqladm(同时也合用于体系启动历程)。
--user选项在MySQL3.22中引进,假如你有老版本,你可使用su命令告知体系在以root运转时在特定的用户下运转服务器。
启动服务器的办法
在我们断定了用于运转服务器的账号后,你能够选择怎样布置启动服务器。你能够从命令行手动或在体系引诱过程当中主动地运转它。关于启动服务器由三种次要办法:
<p>间接挪用mysqld。<p>这多是最不经常使用的办法,倡议不要多利用,因而本文不具体先容。挪用safe_mysqld剧本。
<p>safe_mysqld试图断定服务器程序和数据目次的地位。然后用反应这些值的选项挪用服器。safe_mysqld将尺度堕落设备从服务重视定位到数据目次下的一个堕落文件,使得有它的一笔记录。在启动服务器后,safe_mysqld也监督它而且假如它逝世失落则重启它。safe_mysqld经常使用于BSD作风的Unix体系。<p> 假如你以root或在体系引诱时代启动sqfe_mysqld,堕落日记由root具有,这大概在你今后试图用一个非特权用户挪用safe_mysqld时将招致“permissiondenied”(权限回绝)毛病,删除堕落日记再试一下。挪用mysql.server剧本。
这个剧本经由过程成心用于SystemV的启动和中断体系上的safe_mysqld.mysql.server来启动服务器,该体系包括几个包括在呆板进进或加入一个给定运转级别时被点用的剧本目次。它能够用一个start或stop参数点用以标明你是想启动仍是想中断服务器。
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的目次在你的体系上分歧,修正它便可):
if[-x/usr/local/bin/safe_mysqld];then
/usr/local/bin/safe_mysqld&
fi
关于关于SystemV作风的体系,你能够经由过程将mysql.server放在/etc下得当的启动目次上去安装它。假如你运转Linux并从一个RPM文件安装MySQL,这些已为你做好了,不然将剧本安装在主启动目次下,并将指向它的毗连放在得当的运转级别目次下。你也能够使剧本只能由root启动。
启动文件的目次结构各体系分歧,以是你必要反省一下看看你的体系怎样构造它们。比方在LinuxPPC上,目次是/etc/rc.d和/etc/rc.d/rc3.d,如许你能够如许安装剧本:
#cpmysql.server/etc/rc.d/init.d
#cd/etc/init.d
#chmod500mysql.server
#cd/etc/rc.d/rc3.d
#ln-s../init.d/mysql.serverS99mysql
在solaris上,主剧本目次是/etc/init.d,而且运转级别目次是/etc/rd2.d,以是命令看上往像如许:
#cpmysql.server/etc/rc.d/init.d
#cd/etc/init.d
#chmod500mysql.server
#cd/etc/rc2.d
#ln-s../init.d/mysql.serverS99mysql
在体系启动时,S99mysql剧本将主动用一个start参数挪用。假如你有chkconfig命令(Linux上有),你能够由它匡助安装mysql.server剧本而不是象下面那样手工运转上述命令。
指定启动选项
假如你想在服务器启动时指定分外的启动选项,你可有两种办法。你能够修正你利用的启动剧本(safe_mysqld或mysql.server)并间接在挪用服务器的行上指定选项,或在一个选项文件中指定选项。倡议你假如大概在一个全局选项文件中指定选项,它一般位于/etc/my.cnf(Unix)或c:my.cnf(Windows)。
某些品种的信息没法以服务器选项指定。关于这些你大概必要修正safe_mysqld。比方,假如你的服务器不克不及准确选择当地时区而以GMT前往工夫值,你能够设置TZ情况变量给它一个唆使。假如你用safe_mysqld或mysql.server启动服务器,你能够将一个时区设置加到safe_mysqld。找到启动服务器的行并在该行前到场以下命令:
TZ=US/Central
exportTZ
下面命令的语法是Solaris的,关于其他体系语法大概分歧,请查阅相干手册。假如你的确修正了你的启动剧本,要记着下次你安装MySQL时(如晋级到新版本),你的修正将得到,除非你起首在别处复制了启动剧本。在安装了新版本后,对照新旧版本的剧本,看看你必要重修甚么改动。
在启动时反省你的表
除布置你的服务器在体系引诱时启动,你大概要安装myisamchk和isamchk剧本,以在服务器启动前反省你的表。你大概在一个溃散后重启,有大概表已伤害,在启动前反省它是一个发明成绩的好办法。
越来越多的开发者将继续选择MySQL。Evans的总裁JohnAndrews表示,MySQL学习教程用户对MySQL和其他开源数据库的评价正在赶上甚至超过很多专有商业数据库软件。 代替了原来VB式的错误判断。比Oracle高级不少。 XML字段类型更好的解决了XML数据的操作。XQuery确实不错,但是个人对其没好感。(CSDN的开发者应该是相当的熟了!) 比如,MicrosoftSQLServer2008的某一个版本可以满足现在的这个业务的需要,而且价格还比Oracle11g要便宜,那么这一产品就是适合的。 财务软件要用SQL也只是后台的数据库而已,软件都是成品的,当然多学东西肯定是有好处的.. 以前的DTS轻盈简单。但是现在的SSIS虽然功能强大了很多,但是总是让人感觉太麻烦。看看论坛中询问SSIS的贴子就知道。做的功能太强大了,往往会有很多用户不会用了 大家注意一点。如下面的例子: 还不是性能有问题!否则面向对象的数据库早就实现了!建议使用CLR的地方一般是和应用的复杂程度或操作系统环境有很高的耦合度的场景。如你想构建复杂的算法,并且用到了大量的指针和高级数据模型。 其实可以做一下类比,Oracle等数据库产品老早就支持了java编程,而且提供了java池参数作为用户配置接口。但是现在有哪些系统大批使用了java存储过程?!连Oracle自己的应用都不用为什么?!
页:
[1]