mysql安全启动_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时,窗⼝不按默认设置消失。相反,它提⽰⽤户输⼊:
**如果你想让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⽤户)。
打开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脚本。相反,应使⽤命令⾏选项或myf选项 ⽂件的[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的错误消息发送到数据⽬录中的 ⽂件。
6. 将mysqld_safe的屏幕输出发送到数据⽬录中的host_name.safe⽂件

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。