本章的辨证只用于UNIX 系统。假若正在运作Windows 系统,能够跳过本章,因为附录A“得到和设置软件”壹节中带有了具备须求的起步和倒闭命令。 
    调用本章给出的命令 
    为了简洁,在大多数场馆中,诸如mysqla d m i n、mysqldump 等次第在本章中从来不提交任何- h、- u或- p选项。小编假定你将会用连接服务器所需的别样取舍调用那一个程序。 

作为MySQL管理员,一个平凡的对象正是保险服务器尽只怕地远在运转状态,使得客户机能够时刻访问它。可是,不经常最好关闭服务器(举例,假使正在进展数据库的重定位,不指望服务器在该数据库中更新表)。保持服务器运营和偶发性关闭它的急需关系不是本文所减轻的。但是大家足足能够斟酌哪边使服务器运转和甘休,以便你具备开始展览那七个操作的力量。

用无特权的用户账号运转MySQL服务器 

  本章的表明只用于UNIX 系统。

    在座谈哪边运转服务器在此以前,思量一下在服务器运行时应该运转哪个账号。服务器能够手工业和自行运行。假使手工业运行,则服务器以UNIX 用户地方运营(您刚刚作为该用户举行了挂号)。即,假如笔者以paul 进行登记并运转服务器,则它将以paul 身份运转。假如用s u命令将用户切换来root 然后开发银行服务器,则服务器以root 身份运营。 
    不过,大繁多时候只怕都不会采纳手工运维服务器。您很可能将安顿服务器在系统引导时作为正式运营进程的一局地机关地运作。在UNIX中,该运转进程由系统以UNIX 的r o o t用户的地位推行,该进度中运转的别样进度都用root 的权限运营。 
    应该紧记MySQL服务器运行进度的七个对象: 
    要服务器以某个非root 的用户地方运行。常常,除非进度真的必要root 访问权而mysql办不到,不然应限量任何进度的力量。 
    要服务器始终以同二个用户的地点运转。服务器不经常作为一个用户运维而有的时候又作为另一个用户运维时会发生争辨。那将导致文件和目录以差异的全数权在该多少下被创设,乃至引起服务器不能够访问数据库或表。以同三个用户的地位平等地运行服务器能够幸免该难点。 
    为了以规范的、非特权的用户地点运转数据库,可按如下步骤推行该进度: 
    一) 选取用于周转服务器的账号。mysqld 能够以其余用户身份运转,不过很扎眼,它只为MySQL活动开创了贰个独立的账号。您也得认为MySQL特地钦定八个组。小编将调用的那个用户和组的名字命名称叫mysqladm 和mysqlg r p。假使您使用了其他的名字,则在本书中有mysqladm 和mysqlgrp 的地方替换它们 
    假如您在友好的账号下安装了MySQL并且系统中从未一定的处理权限,则您能够在本人的ID 用户下运作服务器。在这种情形下,应运用你自身的注册名和组名代替mysqladm 和mysqlgrp 。 
    即便你使用RPM 文件在RedHat Linux 下安装了MySQL,则该安装程序就要mysql名下自行创设了三个账号。应选取该名字替换mysqladm 。 
    二) 假如供给的话,可用系统常用的账号创立进度( a c count – c r e a t i o n)来创立服务器账号。那要求以root 身份张开操作。 
    三) 关闭服务器(假若它在运作)。 
    肆) 修改数据目录以及任何子目录和文件的全部权,使mysqladm 用户全数它们。举个例子,要是数据目录是/ us r / l o c a l / v a r,则可按以下设置mysqladm 用户的全体权: 
    # cd /usr/local/var 移动到多少目录 
    # chown -r mysqladmin.mysqlgrp 设置富有目录和文件的全数权 
    伍) 修改数据目录以及任何子目录和文书的许可权,使得只有mysqladm 用户能够访问它们。设置该办法以幸免别的职员走访是1种好得安全堤防措施。假使数据目录是/ us r / l o c a l / v a r,则可经过mysqladm 用户按下列操作设置应享有的全数(您需要以root 身份运维那么些命令): 
    # cd /usr/local/var 移动到数量目录 
    # chmod -奥迪Q5 go -rwx 使全部一切只对mysqladm 可访问 
    在安装数据目录及其内容的全数权和办法时,观察符号连接。您须求追踪符号连接并修改所针对的文本或目录的全部权和格局。假若那几个连接文件所一向的目录不属于您,则如此做或者会引起麻烦,因而你必须是root 用户。 
    在达成前述进程后,应确定保证无论是作为mysqladm 依然作为root 用户注册都始终运转服务器。在后者中,要保管钦命了–user = mysqladm 的选项,使服务器能够将其用户ID 切换成mysqla d m(该选项在系统运行进程中也可利用)。 
    –user 选项被扩大到MySQL三.2二 的mysql中。如若你的版本比MySQL3.2二 旧,则在起步服务器并视作root 用户运营时,能够运用su命令提醒系统在钦命账号下运转服务器。您需求阅读有关su的人工页,因为作为三个点名用户运营命令的语法被改变了。 

  调用本章给出的一声令下

启航服务器的秘诀 

  为了简洁,在超过1半场合中,诸如mysqla d m i n、mysqldump
等先后在本章中并未有交到任何- h、- u或-
p选项。小编假定你将会用连接服务器所需的别样取舍调用这个程序。

    倘令你已经规定了用来运维服务器的账号,则足以选择布署什么运营服务器。能够从命令行手工业运维,或在系统运营进度中活动运维服务器。有二种运营服务器的主要性方法: 
    直接调用mysqld。那也许是细微的指令方法。除了表达mysqld –help 是二个卓有成效的通令(用它能够搜索您可利用别的运转方法应用的精选)外,笔者不准备进一步研商它。 
    调用safe_mysqld 脚本。safe_mysqld 试图显明服务器程序和数目目录的地点,然后利用反映这个岗位的采取调用服务器。safe_mysqld 将服务器的标准错误输出重定向到多少目录的不当文件中,并以记录的情势现身。在起步服务器后, safe_mysqld 还监控 
服务器,并在其死机时再一次起动。safe_mysqld 日常用于UNIX 的BSD 风格的本子。 
    假诺您已经作为root 或在系统运行程序中运行s a f e _ mysqld,则错误日志将由r o o t具有。假如你试着以非特权的用户身份调用s a f e _ mysqld,则或然引起“全体权被驳回”的荒唐。删除该错误文件再试二遍。
调用mysql.server 脚本。通过运行s a f e _ mysqld . mysql. server,该脚本运营服务器。该脚本建议在运用System V 运行/关闭系统的体系中央银行使。这几个系统包涵多少个包括在机械登入或退出三个特定运转级时被调用的台本的目录。它能够利用start 或stop 参数实行调用,以指明希望运行照旧关闭服务器。 
    safe_mysqld 脚本棉被服装置在MySQL安装目录的bin 目录下,或然在MySQL源程序分发包的scripts 目录中。mysql.server 脚本安装在MySQL安装目录的s h a r e / mysql目录下,也许在MySQL源程序分发包的support-files 目录中。假使要动用它,应将其 
拷贝到合适的启航目录中。 
    对于BSD 风格的系统,在/etc 目录中有多少个文件相对应,它们在指导时期初始服务。那些文件的名字日常以‘ r c’开首,由此很也许会有一个名称叫rc.local (或近乎的名字)的文书来运行本地的安装服务。在这么的种类中,您可能要按如下方法增添一些行到rc.local 文件中以运维服务器(假诺路线与你系统中的分歧,可将其修改成s a f e _ mysqld): 
    if (-x /usr/local/bin/safe_mysqld);then 
        /usr/local/bin/safe_mysqld &  
    fi 
    对于System V 风格的系统,能够通过将其放置在/etc 下的恰到好处的运营目录中来安装mysql. server。如若您运维Linux 并从RPM 文件中设置了MySQL,那么那此操作只怕曾经形成了。不然,应该在主运转脚本目录中设置该脚本,并在适合的运行级目录中装置对它的连年。您还可使该脚本仅对root 用户可实践。 
    运行文件目录的布局随系统而调换,因而将索要完善检讨来驳斥流言系统是何等协会它们的。举例,在LinuxPPC 中,这个目录为/etc/rc.d/init.d 和/ e t c / r c . d / r c 3 . d。应该按如下方法安装该脚本: 
    # cp mysql.server /etc/rc.d/init.d 
    # cd /etc/init.d 
    # chmod 500 mysql.server 
    # cd /etc/rc.d/rc3.d 
    # In -s ../init.d/mysql.server S9玖mysql    在Solaris 中,主脚本目录为/ e t c / i n i t . d,运行级目录为/ e t c / r c 2 . d,由此上述命令将替换为: 
    #cp mysql.server /etc/init.d 
    # cd /etc/init.d 
    # chmod 500 mysql.server 
    # cd /etc/rc2.d 
    # In -s ../init.d/mysql.server s9九mysql    在系统运维时期,S9九mysql脚本利用start 参数自动调用。 
    即便你有所chkconfig 命令(它在Linux 中很常用),则可用其协助安装mysql.server 脚本来代替手工业运营上述的吩咐。 
    1. 钦定运营选项 
    在运转服务器时,倘使想要钦定附加的运行选项,可用二种格局开始展览操作。您可以修改所使用的起步脚本( safe_mysqld 或mysql. server),并在调用服务器的下令行中央直机关接钦点那个采取。您还足以在选取文件中钦命选项。我提出,假设大概的话,应在全局选项文件中内定服务器选项。平日该文件的职位是UNIX 中的/ e t c / my.cnf 和Windows 中的c:my.cnf(有关使用选取文件的底细,请参阅附录E)。 
    有个别项目标新闻不能够看做服务器的选项钦点。为了那几个选用,您恐怕供给修改s a f e _ mysqld。比如,假诺服务器无法科学地撷10核糖霉素T 中的本地时区(local time zone)和再次回到时间值,能够设置TZ 情形变量以给该变量贰个升迁。纵然用safe_mysqld 或mysql. ser ver运转服务器,能够将时区设置扩充到safe_mysqld 中。找到运维服务器的命令行,并在该行从前扩大下列命令: 
    TZ=US/Central 
    export TZ 
    这些命令将TZ 设置为US Central 时区。您供给使用合适岗位的时区。该语法是S o l a r i s 的,您的种类只怕会有所差别。比方,设置TZ 变量的另2个常用语法为: 
    TZ=CST6CDT 
    export TZ 
    假设改换了开发银行脚本,当下一次安装MySQL时(如,晋级到更新的版本),将失去那几个改造,除非在头里将该运营脚本拷贝到了别的地点。在装置新的本子之后,将你的脚本与新装置的本子进行相比,以便看注重新创设还亟需做什么改观。 
    2. 在起步时期检查表 
    除了在系统引导时安排服务器的开发银行外,您还足以设置三个脚本来运维mysamchk 和i s a m c h k,以便在服务器运维前对表实行自己议论。您恐怕筹算在服务器崩溃后再度起动,但表大概早已磨损了。在服务器运转前检查那些表是意识难题的好措施。第二3 章包罗了关于编写和设置这种本子的细节。 

  用无特权的用户账号运营MySQL服务器

关门服务器 

  在座谈哪边运行服务器在此以前,想念一下在服务器运转时应该运转哪个账号。服务器能够手工业和电动运营。即使手工业运行,则服务器以UNIX
用户身份运营(您刚刚作为该用户实行了注册)。即,借使小编以paul
实行挂号并运转服务器,则它将以paul 身份运维。假如用s
u命令将用户切换来root 然后运营服务器,则服务器以root 身份运转。

    要想手工业关闭服务器,可使用mysqla d m i n: 
    % mysqladmin shutdown 
    要想活动关闭服务器,您无需做特别的操作。BSD 系统经常会透过给进度发送贰个TE奥德赛M 信号来关闭服务。进度只怕对其作出反应,恐怕被随意地撤除。当mysqld 接收到连续信号时,它会经过结束来响应。对于利用mysql.server 运维服务器的System V-风格的系统,该关闭进程将调用带有stop 参数的脚本来提醒服务器实行关闭──当然,那是在假定你已经安装了mysql. ser ver的地方下进展的。 

  可是,大很多时候恐怕都不会采纳手工运行服务器。您很或者将配置服务器在系统指导时作为规范运行进度的一片段机关地运行。在UNIX中,该运转进度由系统以UNIX
的r o o t用户的地位实施,该进程中运维的别样进度都用root 的权位运维。

在不总是时收回服务器的决定 

  应该紧记MySQL服务器运营进度的多少个对象:

    在少数境况中,由于不能连接受服务器,您必要用手工业重新开动它。当然,这有一些荒谬,因为相似是透过连日到服务器然后告诉服务器终止来手工业关闭服务器的。那么这种情状是怎么样现身的? 
    首先,MySQL的root 口令或然赢得了2个你不知晓的值。这种景观或者是在退换口令时发生的─比如,假设在输入新的口令值时刚刚键入了二个不可知的调整字符。还应该有比较大希望正是全然忘记了口令。 
    其次,对于localhost 的再而三平常是因此UNIX 域的套接字文件实行的,它一般为/ t m p / mysql. s o c k。假如该套接字文件被剔除了,则地面客户机将不可能张开连接。尽管系统有的时候运维了一个删减/tmp 中的临时文件的cron 作业,这种状态就大概会发出。 
    要是因为失去套接字文件而不可能拓展一连,能够因而重新起动服务器简单地举行苏醒,因为服务器在运营时期重新创设了该文件。这里应理解的是,不能够用该套接字营造连接(因为它曾经不设有)而必须建立TCP/IP 连接。比方,如若服务器的主机是pit – viper. s n a k e . n e t,则足以按如下方法实行连接: 
    % mysqladmin -p -uroot -h pit-viper.snake.net shutdown 
    假如此套接字文件被cron 作业删除,则难题将再次出现,直到你修改cron 作业或使用另贰个套接字文件结束。您能够用全局选项文件钦命另1个套接字文件。比方,要是数据目录为/ us r / l o c a l / v a r,则可经过将以下行加多到/ e t c / my.cnf 中来移动套接字文件到那边: 
    [mysqld] 
    socket=/usr/local/var/mysql.sock 
    [client] 
    socket=/usr/local/var/mysql.sock 
    路线名是为服务器和客户机程序2者所钦点的,以便它们能动用同样的套接字文件。假使只对服务器设置路线名,客户机程序将还是在旧的义务上查找套接字文件。在做出这几个修改后应重新启航服务器,使它在新的地方创设套接字文件。 
    即使是因为你忘记了root 的口令或将其修改为2个您不晓得的值而不能够拓展连接,则须要收回服务器的决定以便重新初始化口令: 
    关闭服务器。借使您以root 用户的身价在服务器主机上开始展览登入,可用kill 命令终止服务器。通过接纳ps 命令或通过查阅服务器的PID 文件(平常位于数据目录中)能寻找服务器的ID 进程。 
    最佳先试着用标准的kill 命令撤除服务器,该命令将2个TE瑞虎M 频限信号发送到服务器上,以查看服务器是不是通过关闭功率信号来响应。约等于说,表和日志将被恰本地刷新。借使服务器被堵塞并且未有响应正常的终止连续信号,可应用kill -九 强制结束它。那是最后的一个 
方法,因为也许存在未刷新的改变,并且要承受非同等状态下将表保留下去的危机。假设用kill -九 终止服务器,应确认保障在再次开动服务器在此之前使用myisamchk 和i s a m c h k对表实行反省(参见第3三章) 
    用–skip-grant-tables 选项重新开动服务器。该操作告诉服务器不要采取授权的表检查再三再四。那允许你作为root 用户毫无输入口令就能够实行连接。在连年之后,修改r o o t的口令。 
    告诉服务器再利用mysqladmin flush-privileges 使用授权表运转。假使您的mysqladmin 版本不识别f l us h – priv i l e g e s,试着开始展览再次加载。

  要服务器以有些非root 的用户地点运营。平日,除非进程真的需求root
访问权而mysql办不到,不然应限量任何进程的技巧。

你或者感兴趣的小说:

  • 消除Mysql服务器运营时报错难题的主意
  • SQL
    Agent服务不可能运转的化解办法
  • SQLSERVERAGENT警告:事件 ID:
    312
  • 谬误2202二SQLServerAgent当前未运营的化解方法
  • SQL Server SQL
    Agent服务使用教程小结
  • SQL服务器不能够起动的缓慢解决办法

  要服务器始终以同叁个用户的身价运营。服务器有的时候作为2个用户运维而一时又作为另1个用户运营时会爆发争论。那将导致文件和目录以差别的全数权在该数额下被成立,以至引起服务器不可能访问数据库或表。以同一个用户的身份平等地运行服务器能够幸免该难题。

  为了以标准的、非特权的用户地点运维数据库,可按如下步骤施行该进度:

  一) 选用用于周转服务器的账号。mysqld
可以以任何用户地点运转,不过很鲜明,它只为MySQL活动创办了一个独自的账号。您也可感觉MySQL特意钦点三个组。笔者将调用的那几个用户和组的名字命名叫mysqladm
和mysqlg r p。假如你使用了其余的名字,则在本书中有mysqladm 和mysqlgrp
的地方替换它们

  要是你在投机的账号下安装了MySQL并且系统中并未有一定的管理权限,则您能够在本身的ID
用户下运作服务器。在这种场地下,应接纳你本人的注册名和组名代替mysqladm
和mysqlgrp 。

  假令你使用RPM 文件在RedHat Linux
下安装了MySQL,则该安装程序就要mysql名下活动创立了3个账号。应选用该名字替换mysqladm

  二) 如若须要的话,可用系统常用的账号创立进度( a c count – c r e a t i
o n)来创设服务器账号。那需求以root 身份展开操作。

  三) 关闭服务器(如若它在运作)。

  四) 修改数据目录以及任何子目录和文件的全部权,使mysqladm
用户全体它们。举例,要是数额目录是/ us r / l o c a l / v a
r,则可按以下设置mysqladm 用户的全部权:

  # cd /usr/local/var 移动到多少目录

  # chown -r mysqladmin.mysqlgrp 设置富有目录和文件的全部权

  五) 修改数据目录以及任何子目录和文件的许可权,使得唯有mysqladm
用户能够访问它们。设置该办法以制止任哪个职员走访是一种好得安全防备措施。假如数据目录是/
us r / l o c a l / v a r,则可通过mysqladm
用户按下列操作设置应持有的全方位(您必要以root 身份运转这几个命令):

  # cd /usr/local/var 移动到数量目录

  # chmod -宝马X5 go -rwx 使具有壹切只对mysqladm 可访问

  在装置数据目录及其内容的全体权和章程时,旁观符号连接。您要求追踪符号连接并修改所指向的文件或目录的全部权和艺术。即便那个连接文件所一直的目录不属于你,则那样做可能会滋生麻烦,由此你必须是root
用户。

  在实现前述进程后,应确定保证无论是作为mysqladm 照旧作为root
用户注册都向来运转服务器。在后世中,要力保钦点了–user = mysqladm
的选项,使服务器能够将其用户ID 切换来mysqla d
m(该选项在系统运营进度中也可使用)。

  –user 选项被增添到MySQL三.2二 的mysql中。如若您的本子比MySQL3.2二旧,则在开发银行服务器并作为root
用户运维时,能够应用su命令提示系统在内定账号下运转服务器。您要求阅读有关su的人工页,因为作为一个内定用户运行命令的语法被退换了。
启航服务器的法子

  如若您曾经分明了用来运营服务器的账号,则能够选用安插什么运转服务器。能够从命令行手工作运动行,或在系统运转进程中活动运维服务器。有三种运营服务器的根本措施:

  直接调用mysqld。那或然是纤维的通令方法。除了表明mysqld –help
是一个实用的授命(用它能够查找您可采用此外运行方法运用的选取)外,小编不计划进一步切磋它。

  调用safe_mysqld 脚本。safe_mysqld
试图鲜明服务器程序和数量目录的职位,然后利用反映这一个任务的选料调用服务器。safe_mysqld
将服务器的标准错误输出重定向到数量目录的不当文件中,并以记录的情势出现。在运维服务器后,
safe_mysqld 还监督服务器,并在其死机时再也启航。safe_mysqld
经常用于UNIX 的BSD 风格的本子。

  假诺您曾经作为root 或在系统运营程序中运行s a f e _
mysqld,则错误日志将由r o o t具备。倘让你试着以非特权的用户地点调用s a f
e _ mysqld,则只怕滋生“全部权被拒绝”的一无可取。删除该错误文件再试叁次。

  调用mysql.server 脚本。通过运营s a f e _ mysqld . mysql.
server,该脚本运转服务器。该脚本提出在运用System V
运营/关闭系统的种类中央银行使。那一个种类包罗多少个带有在机器登六或退出三个特定运维级时被调用的本子的目录。它能够选拔start
或stop 参数举行调用,以指明希望运转依旧关闭服务器。

  safe_mysqld 脚本棉被服装置在MySQL安装目录的bin
目录下,或然在MySQL源程序分发包的scripts 目录中。mysql.server
脚本安装在MySQL安装目录的s h a r e /
mysql目录下,只怕在MySQL源程序分发包的support-files
目录中。借使要利用它,应将其拷贝到合适的运转目录中。

  对于BSD 风格的系统,在/etc
目录中有几个文本相对应,它们在指点时期发轫服务。那么些文件的名字平常以‘ r
c’开首,因而很也许会有一个名称叫rc.local
(或近乎的名字)的文本来运维本地的安装服务。在那样的连串中,您可能要按如下方法增多一些行到rc.local
文件中以运行服务器(若是路线与您系统中的分歧,可将其修改成s a f e _
mysqld):

if (-x /usr/local/bin/safe_mysqld);then
  /usr/local/bin/safe_mysqld &
fi

  对于System V 风格的系统,能够透过将其放置在/etc
下的恰到好处的启航目录中来设置mysql. server。假设你运营Linux 并从RPM
文件中装置了MySQL,那么那此操作可能曾经做到了。不然,应该在主运营脚本目录中安装该脚本,并在合适的周转级目录中装置对它的接二连三。您还可使该脚本仅对root
用户可施行。

  运行文件目录的布局随系统而改变,由此将需求完善检查来清淤系统是怎么协会它们的。举例,在LinuxPPC
中,这一个目录为/etc/rc.d/init.d 和/ e t c / r c . d / r c 三 .
d。应该按如下方法安装该脚本:

      # cp mysql.server /etc/rc.d/init.d
  # cd /etc/init.d
  # chmod 500 mysql.server
  # cd /etc/rc.d/rc3.d
  # In -s ../init.d/mysql.server S9玖mysql 在Solaris 中,主脚本目录为/
e t c / i n i t . d,运维级目录为/ e t c / r c 贰 .
d,由此上述命令将替换为:
  #cp mysql.server /etc/init.d
  # cd /etc/init.d
  # chmod 500 mysql.server
  # cd /etc/rc2.d
  # In -s ../init.d/mysql.server s9玖mysql
在系统运维时期,S9九mysql脚本金和利息用start 参数自动调用。

  假若您有所chkconfig 命令(它在Linux
中很常用),则可用其帮衬安装mysql.server 脚本来取代手工业运转上述的一声令下。

  一. 点名运维选项

  在开发银行服务器时,倘使想要钦点附加的启航选项,可用二种方法进行操作。您能够修改所采纳的起步脚本(
safe_mysqld 或mysql.
server),并在调用服务器的一声令下行中央直机关接钦命这一个采纳。您仍是能够在甄选文件中钦点选项。作者建议,假诺或然的话,应在全局选项文件中钦点服务器选项。平日该公文的任务是UNIX
中的/ e t c / my.cnf 和Windows
中的c:my.cnf(有关使用选用文件的底细,请参阅附录E)。

  有个别类型的新闻不能看做服务器的选项内定。为了这么些选择,您或者供给修改s
a f e _ mysqld。比如,假诺服务器不可能科学地撷拾奇霉素T 中的本地时区(local
time zone)和重返时间值,能够安装TZ
景况变量以给该变量三个提示。要是用safe_mysqld 或mysql. ser
ver运行服务器,能够将时区设置扩张到safe_mysqld
中。找到运行服务器的命令行,并在该行此前扩大下列命令:

TZ=US/Central
export TZ

  那些命令将TZ 设置为US Central
时区。您供给选拔特别岗位的时区。该语法是S o l a r i s
的,您的种类只怕会有所分歧。比如,设置TZ 变量的另贰个常用语法为:

TZ=CST6CDT
export TZ

  假如改动了开发银行脚本,当下一次安装MySQL时(如,进级到更新的本子),将错过这几个修改,除非在前头将该运转脚本拷贝到了任哪个地点方。在设置新的本子之后,将你的脚本与新安装的脚本实行相比较,以便看重视新确立还索要做怎么样改观。

  二. 在运转时期检查表

  除了在系统引导时布置服务器的运营外

Author

发表评论

电子邮件地址不会被公开。 必填项已用*标注