mysql安全启动脚本mysqld_safe详细介绍

在Unix和NetWare中推荐使用mysqld_safe来启动mysqld服务器。mysqld_safe增加了一些安全特性,例如当出现错误时重启服务器并向错误日志文件写入运行时间信息。本节后面列出了NetWare的特定行为。

  注释:为了保持同旧版本MySQL的向后兼容性,MySQL二进制分发版仍然包括safe_mysqld作为mysqld_safe的符号链接。但是,你不应再依赖它,因为再将来将删掉它。

  默认情况下,mysqld_safe尝试启动可执行mysqld-max(如果存在),否则启动mysqld。该行为的含义是:

  · 在Linux中,MySQL-Max RPM依赖该mysqld_safe的行为。RPM安装可执行mysqld-max,使mysqld_safe从该点起自动使用可执行命令。

  · 如果你安装包括mysqld-max服务器的MySQL-Max分发版,后面升级到非-Max的MySQL版本,mysqld_safe仍然试图运行旧的 mysqld-max服务器。升级时,你应手动删除旧的mysqld-max服务器以确保mysqld_safe运行新的mysqld服务器。

  要想越过默认行为并显式指定你想要运行哪个服务器,为mysqld_safe指定--mysqld或--mysqld-version选项。

  mysqld_safe从选项文件的[mysqld]、[server]和 [mysqld_safe]部分读取所有选项。为了保证向后兼容性,它还读取 [safe_mysqld]部分,尽管在MySQL 5.1安装中你应将这部分重新命名为[mysqld_safe]。

  mysqld_safe支持下面的选项:

  · --help
  显示帮助消息并退出。
  · --autoclose
  (只在NetWare中)在NetWare中,mysqld_safe可以保持窗口。当你关掉mysqld_safe NLM时,窗口不按默认设置消失。相反,它提示用户输入:
  *<NLM has terminated; Press any key to close the screen>*如果你想让NetWare自动关闭窗口,在mysqld_safe中使用--autoclose选项。
  · --basedir=path
  MySQL安装目录的路径。
  · --core-file-size=size
  mysqld能够创建的内核文件的大小。选项值传递给ulimit -c。
  · --datadir=path
  数据目录的路径。
  · --defaults-extra-file=path
  除了通用选项文件所读取的选项文件名。如果给出,必须首选该选项。
  · --defaults-file=path
  读取的代替通用选项文件的选项文件名。如果给出,必须首选该选项。
  · --ledir=path
  包含mysqld程序的目录的路径。使用该选项来显式表示服务器位置。
  · --log-error=path
  将错误日志写入给定的文件。参见5.11.1节,“错误日志”。
  · --mysqld=prog_name
  想要启动的服务器程序名(在ledir目录)。如果你使用MySQL二进制分发版但有二进制分发版之外的数据目录需要该选项。
  · --mysqld-version =suffix
  该选项类似--mysqld选项,但你只指定服务器程序名的后缀。基本名假定为mysqld。 例如,如果你使用--mysqld-version =max,mysqld_safe启动ledir目录中的mysqld-max程序。如果--mysqld-version的参数为 空,mysqld_safe使用目录中的mysqld。
  · --nice=priority
  使用nice程序根据给定值来设置服务器的调度优先级。
  · --no-defaults
  不要读任何选项文件。如果给出,必须首选该选项。
  · --open-files-limit=count
  mysqld能够打开的文件的数量。选项值传递给 ulimit -n。请注意你需要用root启动mysqld_safe来保证正确工作!
  · --pid-file=path
  进程ID文件的路径。
  · --port=port_num
  用来帧听TCP/IP连接的端口号。端口号必须为1024或更大值,除非MySQL以root系统用户运行。
  · --skip-character-set-client-handshake
  忽略客户端发送的字符集信息,使用服务器的默认字符集。(选择该选项,MySQL的动作与MySQL 4.0相同)。
  · --socket=path
  用于本地连接的Unix套接字文件。
  · --timezone=zone
  为给定的选项值设置TZ时区环境变量。从操作系统文档查阅合法的时区规定格式。
  · --user={user_name | user_id}
  以用户名user_name或数字用户ID user_id运行mysqld服务器。(本文中的“用户”指系统登录账户,而不是 授权表中的MySQL用户)。

  执行mysqld_safe时,必须先给出--defaults-file或--defaults-extra-option,或不使用选项文件。例如,该命令将不使用选项文件:
  mysqld_safe --port=port_num --defaults-file=file_name相反,使用下面的命令:
  mysqld_safe --defaults-file=file_name --port=port_num一般情况mysqld_safe脚本可以启动从源码或二进制MySQL分发版安装的服务器,即使这些分发版将服务器安装到 稍微不同的位置。(参见2.1.5节,“安装布局”)。 mysqld_safe期望下面的其中一个条件是真的:

  · 可以根据调用mysqld_safe的目录找到服务器和数据库。在二进制分发版中,mysqld_safe看上去在bin和data目录的工作目录下。对 于源码分发版,为libexec和var目录。如果你从MySQL安装目录执行mysqld_safe应满足该条件(例如,二进制分发版为/usr /local/mysql)。

  · 如果不能根据工作目录找到服务器和数据库,mysqld_safe试图通过绝对路径对它们定位。典型位置为/usr/local/libexec和 /usr/local/var。实际位置由构建分发版时配置的值确定如果MySQL安装到配置时指定的位置,它们应该是正确的。

  因为mysqld_safe试图通过工作目录找到服务器和数据库,只要你从MySQL安装目录运行mysqld_safe,可以将MySQL二进制分发版安装到其它位置:

  shell> cd mysql_installation_directoryshell> bin/mysqld_safe &如果mysqld_safe失败,即使从MySQL安装目录调用仍然失败,你可以指定--ledir和--datadir选项来指示服务器和数 据库在你的系统中的安装目录。

  一般情况,你不应编辑mysqld_safe脚本。相反,应使用命令行选项或my.cnf选项 文件的[mysqld_safe]部分的选项来配置mysqld_safe。一般不需要编辑mysqld_safe来正确启动服务器。但是,如果你编辑, 将来升级MySQL后会覆盖你修改的mysqld_safe版本,因此你应对你修改的版本进行备份以便将来重装。

  在NetWare中,mysqld_safe是一个NetWare Loadable Module (NLM),从原Unix shell脚本移植。它执行:
  1. 检查系统和选项。
  2. 检查MyISAM表。
  3. 保持MySQL服务器窗口。
  4. 启动并监视mysqld,如果因错误终止则重启。
  5. 将mysqld的错误消息发送到数据目录中的host_name.err 文件。
  6. 将mysqld_safe的屏幕输出发送到数据目录中的host_name.safe文件

(0)

相关推荐

  • mysqld_safe启动脚本源码阅读、分析

    前几天读了下mysqld_safe脚本,个人感觉还是收获蛮大的,其中细致的交代了MySQL数据库的启动流程,包括查找MySQL相关目录,解析配置文件以及最后如何调用mysqld程序来启动实例等,有着不错的参考价值:与此同时,脚本中涉及了很多shell编程中的小技巧,像变量解析,sed替换转义,进程优先级的判断以及无处不在test结构等等,当作Linux shell的学习素材还是非常合适的,下面是我的环境: 数据库版本: MySQL 5.1.45 操作系统版本: Red Hat Enterpris

  • mysql安全启动脚本mysqld_safe详细介绍

    在Unix和NetWare中推荐使用mysqld_safe来启动mysqld服务器.mysqld_safe增加了一些安全特性,例如当出现错误时重启服务器并向错误日志文件写入运行时间信息.本节后面列出了NetWare的特定行为. 注释:为了保持同旧版本MySQL的向后兼容性,MySQL二进制分发版仍然包括safe_mysqld作为mysqld_safe的符号链接.但是,你不应再依赖它,因为再将来将删掉它. 默认情况下,mysqld_safe尝试启动可执行mysqld-max(如果存在),否则启动m

  • MySQL Test Run 测试框架详细介绍 

    目录 一.介绍 二.安装 三.测试示例 四.创建测试用例 五.mtr其他常用参数介绍 –force –record –big-test –suite=[dirname] 六.测试用例编写的规范 一.介绍 MySQL Test Run 简称MTR,是MySQL官方提供的自动化测试框架,执行脚本在发布路径的mysql-test目录下. 主要测试步骤,是通过执行一个case(*.test)中的语句(包括sql语句和其他管理语句),将case的输出记录保存在结果文件(*.result)中,或者是将语句执

  • Mysql系统变量与状态变量详细介绍

    目录 系统变量 什么是Mysql系统变量 设置系统变量 my.cnf设置配置 启动项配置 Set的形式修改系统变量 SESSION作用范围语法 GLOBAL作用范围语法 查看系统变量值 系统变量注意点 并不是所有的系统变量都有session范围和global范围 并不是所有系统变量可以修改 状态变量 系统变量 什么是Mysql系统变量 能够在程序运行过程中影响Mysql程序行为的变量称之为系统变量. 在Mysql中存在多个系统变量,可以使用show variables查看,如果直接执行得到的结果

  • MAC 命令行启动tomcat的详细介绍

    MAC 命令行启动tomcat的详细介绍 一.修改授权 进入tomcat的bin目录,修改授权 ➜ bin pwd /Users/yp/Documents/workspace/apache-tomcat-7.0.68/bin ➜ bin sudo chmod 755 *.sh sudo为系统超级管理员权限. chmod 改变一个或多个文件的存取模式 755代表用户对该文件拥有读.写.执行的权限,同组的其他人员拥有执行和读的权限,没有写的权限,其它用户的权限和同组人员一样. 777代表,user,

  • linux脚本基础详细介绍

    目录 1.脚本vim环境 2.shell脚本中环境的定义方法 3.shell脚本中的转译字符 4.脚本中变量的数组 5.系统中命令的别名设定 6.脚本中的传参 7.脚本中的循环函数 1.脚本vim环境 在脚本中通常要显示一些脚本信息,这些信息可以通过对vim设定使其自动出现 /etc/vimrc 此文件是vim的主配置文件,文件内容全局生效 -/.vimrc 此文件是vim子文件,在用户家目录中编辑vim的配置文件也可以控制,但是只针对当前用户生效 vim ~/.vimrc 编辑配置文件 配置信

  • MySQL主从复制之GTID模式详细介绍 

    目录 一.GTID概述 二.GTID相较与传统复制的优势 三.GTID自身存在哪些限制 四.GTID工作原理简单介绍 五.如何开启GTID复制 六.查看GTID相关参数 七.GTID与传统模式建立复制时候语句的不同点 八.GTID同步状态简单解析 一.GTID概述 MySQL5.6 在原有主从复制的基础上增加了一个新的复制方式,即基于GTID的复制方式,它由UUID和事务ID两个部分组成,具有如下特点. GTID事务是全局唯一性的,并且一个事务对应一个GTID值. 一个GTID值在同一个MySQ

  • Mysql 删除数据库drop database详细介绍

    Mysql 删除数据库drop database 方法-:使用cmd模式下载删除 mysql> drop database school; 此命名删除了school数据库.但如果school数据库不存在就会报错.所以完整的语句应该这么写: mysql> drop database if exists school; 方法二:PHP脚本删除数据库 在php中,我们可以使用mysql_query函数来执行sql语句. 所以删除数据库时,我们可以直接用mysql_query来执行删除命令. <

  • PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍

    漏洞很久之前(大概5年前)被提出来了,但并不是php代码上的问题,所以问题一直存在,直到现在.我一直没留意,后来yaseng告诉我的,他测试了好像5.5都可以. 漏洞详情在这里 http://cxsecurity.com/issue/WLB-2009110068. 给出我写的EXP: 复制代码 代码如下: <?php /* * by phithon * From http://www.jb51.net * detail: http://cxsecurity.com/issue/WLB-20091

  • Mysql日期查询的详细介绍

    查询当前日期 SELECT CURRENT_DATE(); SELECT CURDATE(); 查询当前日期和时间 SELECT NOW(); 查询今天的数据 SELECT * FROM `表名` WHERE TO_DAYS(NOW()) = TO_DAYS(`字段`); SELECT * FROM `表名` WHERE TO_DAYS(NOW()) - TO_DAYS(`字段`) = 0; 查询昨天的数据 SELECT * FROM ``表名`` WHERE TO_DAYS(`字段`) = T

  • Linux下安装与使用MySQL详细介绍

    一.安装Mysql 1.下载MySQL的安装文件安装MySQL需要下面两个文件:MySQL-server-4.0.16-0.i386.rpm MySQL-client-4.0.16-0.i386.rpm下载地址为:http://dev.mysql.com/downloads/mysql-4.0.html,打开此网页,下拉网页找到"Linux x86 RPM downloads"项,找到"Server"和"Client programs"项,下载需

随机推荐