转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> MySql >> 正文
MySQL服务器的启动和关闭(2)         ★★★★

MySQL服务器的启动和关闭(2)

作者:闵涛 文章来源:闵涛的学习笔记 点击数:630 更新时间:2009/4/22 20:13:40
调用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 S99mysql    在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 s99mysql    在系统启动期间,S99mysql脚本利用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。例如,如果服务器不能正确地拾取GMT 中的本地时区(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时(如,升级到更新的版本),将失去这些修改,除非在之前将该启动脚本拷贝到了其他地方。在安装新的版本之后,将您的脚本与新安装的脚本进行比较,以便看看重新建立还需要做什么改动。
    2. 在启动期间检查表
    除了在系统引导时安排服务器的启动外,您还可以安装一个脚本来运行mysamchk 和i s a m c h k,以便在服务器启动前对表进行检查。您可能打算在服务器崩溃后重新启动,但表可能已经毁坏了。在服务器启动前检查这些表是发现问题的好办法。第13 章包含了有关编写和安装这种脚本的细节。

关闭服务器

    要想手工关闭服务器,可使用mysqla d m i n:
    % mysqladmin shutdown
    要想自动关闭服务器,您不需要做特别的操作。BSD 系统通常会通过给进程发送一个TERM 信号来关闭服务。进程或者对其作出反应,或者被随便地取消。当mysqld 接收到信号时,它会通过终止来响应。对于利用mysql.server 启动服务器的System V-风格的系统,该关闭进程将调用带有stop 参数的脚本来指示服务器进行关闭──当然,这是在假定您已经安装了mysql. ser ver的情况下进行的。

在不连接时收回服务器的控制

    在某些环境中,由于不能连接到服务器,您需要用手工重新启动它。当然,这有点荒谬,因为一般是通过连接到服务器然后告知服务器终止来手工关闭服务器的。那么这种情况是怎样出现的?
    首先,MySQL的root 口令可能得到了一个您不知道的值。这种情况可能是在修改口令时发生的─例如,如果在输入新的口令值时碰巧键入了一个不可见的控制字符。还有可能就是完全忘记了口令。
    其次,对于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 作业或使用另一个套接字文件为止。您可以用全局选项文件指定另一个套接字文件。例如,如果数据目录为/ 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
    路径名是为服务器和客户机程序二者所指定的,以便它们能使用相同的套接字文件。如果只对服务器设置路径名,客户机程序将仍然在旧的位置上查找套接字文件。在做出这个修改后应重新启动服务器,使它在新的位置创建套接字文件。
    如果由于您忘记了root 的口令或将其修改为一个您不知道的值而不能进行连接,则需要收回服务器的控制以便重新设置口令:
    关闭服务器。如果您以root 用户的身份在服务器主机上进行登录,可用kill 命令终止服务器。通过使用ps 命令或通过查看服务器的PID 文件(通常放在数据目录中)能找出服务器的ID 进程。
    最好先试着用标准的kill 命令取消服务器,该命令将一个TERM 信号发送到服务器上,以查看服务器是否通过关闭信号来响应。也就是说,表和日志将被适当地刷新。如果服务器被堵塞并且没有响应正常的终止信号,可使用kill -9 强制终止它。这是最后的一个
方法,因为可能存在未刷新的更改,并且要承担非一致状态下将表保留下来的风险。如果用kill -9 终止服务器,应确保在重新启动服务器之前利用myisamchk 和i s a m c h k对表进行检查(参见第13章)
    用--skip-grant-tables 选项重新启动服务器。该操作告诉服务器不要使用授权的表检查连接。这允许您作为root 用户不用输入口令即可进行连接。在连接之后,修改r o o t的口令。
    告诉服务器再利用mysqladmin flush-privileges 使用授权表启动。如果您的mysqladmin 版本不识别f l us h - priv i l e g e s,试着进行重新加载。


[MySql]PHP存取 Mysql 数据乱码终极解决方案  [MySql]解决Table xxx is marked as crashed and should …
[MySql][MySQL]快速解决"is marked as crashed and shoul…  [MySql]MySQL DELETE语法用法详解
[MySql]mysql中时间日期格式化  [MySql]修改mysql导入文件大小限制
[其他]MySql常用命令大全  [Web开发]把ACCESS的数据导入到Mysql中的方法详解
[MySql]解决mysql 1040错误Too many connections的方法  [系统软件]利用crontab系统每天定时备份MySQL数据库
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台