mysql.server详解

4.3.3mysql.server-服务器启动脚本
    ++++++++++++++++++++
    在unix上的mysql distributions包含了一个名为mysql.server的脚本,它使用mysqld_safe来启动mysql服务器;
    它可以在linux和Solaris系统上使用,这些系统使用System V-style 指令去开启或者关闭系统服务;
    It is also used by the OS X Startup Item for MySQL

    关于MySQL 5.7.6,对于使用RPM安装的情况,服务器启动和关闭被一些Linux平台的systemd管理着。
    在这些平台上,mysql.server 和 mysqld_safe 不会被安装,因为没必要。

    shell> mysql.server start | stop 
    mysql.server 是脚本,start和stop是参数;

    在mysql.server启动服务器之前,它将目录转换到mysql安装目录里去,然后调用mysqld_safe;
    要使用特定用户来运行服务器,可以在/etc/my.cnf这个文件里边的[mysqld]组里边添加要给user选项,后面会讲;
    (如果你使用二进制方式将mysql安装在一个“不标准”的位置,有可能你必须编辑mysql.server这个脚本文件;
    通过修改mysql.server使得在运行mysqld_safe之前切换到合适的目录;
    如果这样做的话,更新以后,你做的修改可能被覆盖;所以最好做一个拷贝;)

    mysql.server通过向服务器发送一个信号来停止它;也可以使用mysqladmin shutdown命令来停止服务器;

    想要在你的服务器上自动启动和关闭mysql的话,必须在合适/etc/rc*文件里边加入启动和关闭指令;

    如果使用linux server RPM package(MySQL-server-VERSION.rpm)或者 a native linux package 安装,
    mysql.server 脚本可能被安装在/etc/init.d目录下,名为mysql

    一些厂商提供的RPM包自带一个启动脚本--名字可能不一样,比如:名为mysqld;

    如果你使用源码或者二进制格式安装mysql(没有自动安装mysql.server这个脚本),你可以手动安装;
    这个脚本在mysql安装目录下的support-files目录里边或者在源码包里边(自己找找);
    手动安装的方法是将找到的mysql.server的脚本复制到/etc/init.d目录下,然后重命名为mysql,最后给予执行权限;
    shell> cp mysql.server /etc/init.d/mysql
    shell> chmod +x /etc/init.d/mysql
        在一些老版本的红帽系统中,使用的是/etc/rc.d/init.d而不是/etc/init.d;
        这样的话,我们要看情况调整前面的命令;
        一种可选的方式:先给/etc/rc.d/init.d 目录创建一个软链接--/etc/init.d;
    脚本安装之后呢,让它随系统开机自启动(具体做法取决于系统);
    shell> chkconfig --add mysql
    有的系统中,这个命令也不能少:shell> chkconfig --level 345 mysql on
    有的系统使用/etc/rc.local 或者 /etc/init.d/boot.local 文件去在开机的时候启动第三方的服务;
    这样的话,需要将启动命令写到这些文件中,比如:/bin/sh -c 'cd /usr/local/mysql; ./bin/mysqld_safe --user=mysql &'

    mysqld.server会从配置文件的[mysqld] [mysql.server] 区域读取配置选项;
    为了向后兼容,mysqld.server也会读取[mysql_server]区域的配置选项,但是现在,应该使用[mysql.server]:

    可以在全局配置文件/etc/my.cnf中配置mysql.server ,一个典型的/etc/my.cnf文件如下:
    [mysqld]
    datadir=/usr/local/mysql/var
    socket=/var/tmp/mysql.sock
    port=3306
    user=mysql

    [mysql.server]
    basedir=/usr/local/mysql

    mysql.server脚本支持下面这些选项;一旦指定,它们必须放在配置文件中,不能放到命令行中(mysql.server支持的命令行参数只有start和stop); 
    --basedir mysql安装目录;
    --datadir 数据文件的路径;
    --pid-file 服务器写自己的进程号的文件;
        如果这个不指定,mysql使用默认的hostname.pid;
        The PID file value被传递给mysqld_safe,覆盖了[mysqld_safe]下面指定的值;
        因为mysql.server 读取[mysqld]选项组而不读取[mysqld_safe]选项组,所以为了在使用mysql.server 调用mysqld_safe的时候,
        mysqld_safe能够获得一样的pid,我们可以让[mysqld]选项组和[mysqld_safe]选项组使用同一个pid-file;
    --service-startup-timeout 等待服务器启动的时间,过了这个时间就报错,单位是秒,默认是900,0意味着不等,负值意味着一直等下去;

    ++++++++++++++++++++
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值