6.3.2 mysqld_safe — MySQL Server Startup Script
mysqld_safe 是一种推荐的方式 MysqDD x上的服务器。 mysqld_safe 添加一些安全特性,例如在发生错误时重新启动服务器,并将运行时信息记录到错误日志中。稍后在本节中给出了错误日志记录的描述.
注意事项
对于一些Linux平台来说,使用RPM或DEBAN包的mysql安装包括管理mysql服务器启动和关闭的系统支持。在这些平台上, mysqld_safe 没有安装,因为它是不必要的。详情请参阅 第2.5.9节,"使用系统管理mysql服务器" .
不使用 mysqld_safe 在使用系统D进行服务器管理的平台上 [mysqld_safe] 或 [safe_mysqld] 选项文件中的部分不支持,可能导致意外行为。
mysqld_safe 尝试启动一个名为 MysqDD .要覆盖默认行为并显式地指定要运行的服务器的名称,请指定--mysqld 或--mysqld-version 选择 mysqld_safe .你也可以使用 --ledir 指示目录的位置 mysqld_safe 去找服务器。
许多选择 mysqld_safe 同样的选择 MysqDD .看 第7.1.7节,"服务器命令选项" .
不知道的选择 mysqld_safe 传给 MysqDD 如果它们是在命令行中指定的,但是如果它们是在 [mysqld_safe] 一组选项文件。看 第6.2.2.2节,"使用选项文件" .
mysqld_safe 阅读所有选择 [mysqld] ,[server] ,以及 [mysqld_safe] 选项文件中的部分。例如,如果你指定[mysqld] 像这样的区域, mysqld_safe 找到并使用 --log-error 备选办法:
[mysqld]
log-error=error.log
对于向后兼容性, mysqld_safe 同时阅读[safe_mysqld] 但现在你应该把这些部分重新命名为 [mysqld_safe] .
mysqld_safe 如下表所述,在命令行和选项文件中接受选项。有关mysql程序使用的选项文件的信息,请参阅 第6.2.2.2节,"使用选项文件" .
表6.7各种备选办法
选项名称 描述
--basedir 到mysql安装目录的路径
--core-file-size 应该能够创建的核心文件的大小
--datadir 数据目录路径
--defaults-extra-file 除了通常的选项文件外,还可以读取指定选项文件
--defaults-file 只读取指定选项文件
--help 显示帮助信息和出口
--ledir 服务器所在目录路径
--log-error 将错误日志写入命名文件
--malloc-lib 可供选择的马洛克图书馆
--mysqld 要启动的服务器程序名称(在"列迪尔"目录中)
--mysqld-safe-log-timestamps 日志记录的时间标记格式
--mysqld-version 服务器程序名称的后缀
--nice 使用好的程序来设置服务器调度优先级
--no-defaults 阅读无选项文件
--open-files-limit 应该能够打开的文件数量MysqDH
--pid-file 服务器进程ID文件的路径名称
--plugin-dir 安装插件的目录
--port 用于监听tml/IP连接的端口号
--skip-kill-mysqld 不要试图杀死迷途的MysqDD进程
--skip-syslog 不要将错误消息写入系统日志;使用错误日志文件
--socket 用于监听UNIX套接字连接的套接字文件
--syslog 将错误信息写入系统日志
--syslog-tag 为系统日志编写的邮件添加后缀
--timezone 将TZ时差环境变量设置为指定值
--user 作为拥有名称用户名或数字用户名用户名的用户
--help
命令行格式 --help
显示一个帮助信息和出口。
--basedir=dir_name
命令行格式 --basedir=dir_name
类型 目录名称
通往mysql安装目录的路径。
--core-file-size=size
命令行格式 --core-file-size=size
类型 弦
核心文件的大小 MysqDD 才能创造。期权值传递到 超限-C .
注意事项
… innodb_buffer_pool_in_core_file 变量可以用来减小支持它的操作系统的核心文件的大小。详情请参阅 第17.8.3.7节,"从核心文件中排除或包括缓冲池页面" .
--datadir=dir_name
命令行格式 --datadir=dir_name
类型 目录名称
数据目录的路径。
--defaults-extra-file=file_name
命令行格式 --defaults-extra-file=file_name
类型 文件名
除了通常的选项文件外,请阅读此选项文件.如果文件不存在或无法访问,则服务器退出时出错。如果 file_name 不是绝对路径名,它是相对于当前目录进行解释的.如果使用命令行,这必须是第一个选项。
有关此选项和其他选择文件选项的更多信息,请参阅 第6.2.2.3节,"影响选择文件处理的命令行选项" .
--defaults-file=file_name
命令行格式 --defaults-file=file_name
类型 文件名
只使用给定的选项文件。如果文件不存在或无法访问,则服务器退出时出错。如果file_name 不是绝对路径名,它是相对于当前目录进行解释的.如果使用命令行,这必须是第一个选项。
有关此选项和其他选择文件选项的更多信息,请参阅 第6.2.2.3节,"影响选择文件处理的命令行选项" .
--ledir=dir_name
命令行格式 --ledir=dir_name
类型 目录名称
如果 mysqld_safe 无法找到服务器,请使用此选项指示到服务器所在目录的路径名。
此选项只在命令行上接受,在选项文件中不接受。在使用系统D的平台上,该值可指定为MYSQLD_OPTS .看 第2.5.9节,"使用系统管理mysql服务器" .
--log-error=file_name
命令行格式 --log-error=file_name
类型 文件名
将错误日志写入给定文件.看 第7.4.2节,"错误日志" .
--mysqld-safe-log-timestamps
命令行格式 --mysqld-safe-log-timestamps=type
类型 枚举
默认值 utc
有效值
system
hyphen
legacy
此选项控制日志输出中时间戳的格式。 mysqld_safe .下面的列表描述了允许值。任何其他价值, mysqld_safe 记录警告和使用 UTC 格式。
UTC,utc
ISO 8601 UTC format (same as --log_timestamps=UTC for the server). This is the default.
SYSTEM, system
ISO 8601 local time format (same as --log_timestamps=SYSTEM for the server).
HYPHEN, hyphen
YY-MM-DD h:mm:ss format, as in mysqld_safe for MySQL 5.6.
LEGACY, legacy
YYMMDD hh:mm:ss format, as in mysqld_safe prior to MySQL 5.6.
--malloc-lib=[lib_name]
Command-Line Format --malloc-lib=[lib-name]
Type String
The name of the library to use for memory allocation instead of the system malloc() library. The option value must be one of the directories /usr/lib, /usr/lib64, /usr/lib/i386-linux-gnu, or /usr/lib/x86_64-linux-gnu.
…--malloc-lib 期权通过修改LD_PRELOAD 影响动态链接的环境值,使加载程序能够在 MysqDD 跑:
如果没有给出期权,或没有一个值(--malloc-lib= ), LD_PRELOAD 没有修改,也没有尝试使用tcmalloc .
在mysql8.0.21之前,如果该选项是 --malloc-lib=tcmalloc , mysqld_safe 找一个 tcmalloc 图书馆 /usr/lib .如果 tmalloc 它的路径名称被添加到 LD_PRELOAD 价值 MysqDD .如果 tcmalloc 却没有找到, mysqld_safe 有错误的堕胎。
截至我的数据8.0.21,tcmalloc 是不允许的 --malloc-lib 选择。
如果选择权是 ,这条完整的道路是在 价值。如果完整的路径指向一个不存在或不可读的文件, mysqld_safe 有错误的堕胎。 --malloc-lib=/path/to/some/libraryLD_PRELOAD
对于那些 mysqld_safe 将路径名添加到LD_PRELOAD ,它将路径添加到变量已经拥有的任何现有值的开头。
注意事项
在使用系统管理服务器的系统上, mysqld_safe 是不可用的。相反,通过设置指定分配库 LD_PRELOAD 在…中 /etc/sysconfig/mysql .
Linux用户可以使用 libtcmalloc_minimal.so 任何平台的图书馆tcmalloc 包裹安装在/usr/lib 把这些线条加到my.cnf 文件:
[mysqld_safe]
malloc-lib=tcmalloc
使用特定的tcmalloc 库,指定其完整的路径名称。例子:
[mysqld_safe]
malloc-lib=/opt/lib/libtcmalloc_minimal.so
--mysqld=prog_name
命令行格式 --mysqld=file_name
类型 文件名
服务器程式名称(在 ledir 你想开始。如果您使用mysq2二进制分布,但数据目录在二进制分布之外,则需要此选项。如果 mysqld_safe 找不到服务器,请使用 --ledir 选项可以指示服务器所在目录的路径名.
此选项只在命令行上接受,在选项文件中不接受。在使用系统D的平台上,该值可指定为MYSQLD_OPTS .看 第2.5.9节,"使用系统管理mysql服务器" .
--mysqld-version=suffix
命令行格式 --mysqld-version=suffix
类型 弦
这个办法类似于 --mysqld 选项,但是您只为服务器程序名指定后缀。基本名称假定为 MysqDD .例如,如果你使用 --mysqld-version=debug , mysqld_safe 开始 Mysqld-调试 计划 ledir 目录。如果论点是 --mysqld-version 是空的, mysqld_safe 使用 MysqDD 在…中ledir 目录。
此选项只在命令行上接受,在选项文件中不接受。在使用系统D的平台上,该值可指定为MYSQLD_OPTS .看 第2.5.9节,"使用系统管理mysql服务器" .
--nice=priority
命令行格式 --nice=priority
类型 数字的
使用nice 程序设置服务器对给定值的调度优先级。
--no-defaults
命令行格式 --no-defaults
类型 弦
不要读取任何选项文件。如果程序启动失败是因为从一个选项文件读取未知选项, --no-defaults 会被用来阻止他们被阅读。如果使用命令行,这必须是第一个选项。
有关此选项和其他选择文件选项的更多信息,请参阅 第6.2.2.3节,"影响选择文件处理的命令行选项" .
--open-files-limit=count
命令行格式 --open-files-limit=count
类型 弦
文件的数量 MysqDD 就可以打开了。期权值传递到 用限-N .
注意事项
你必须开始 mysqld_safe 作为 root 才能正常运作。
--pid-file=file_name
命令行格式 --pid-file=file_name
类型 文件名
道路的名称 MysqDD 应该使用它的进程ID文件。
--plugin-dir=dir_name
命令行格式 --plugin-dir=dir_name
类型 目录名称
插件目录的路径名称。
--port=port_num
命令行格式 --port=number
类型 数字的
服务器在监听TP/IP连接时应该使用的端口号。端口号必须是1024或更高,除非服务器是由 root 操作系统用户。
--skip-kill-mysqld
命令行格式 --skip-kill-mysqld
别想杀 MysqDD 启动过程。这个选项只适用于Linux。
--socket=path
命令行格式 --socket=file_name
类型 文件名
服务器在监听本地连接时应该使用的UNIX套接字文件。
--syslog, --skip-syslog
命令行格式 --syslog
反对 是的
命令行格式 --skip-syslog
反对 是的
--syslog 使错误消息发送到syslog 关于支持 伐木工人 程序。 --skip-syslog 禁止使用 syslog ;信息写入错误日志文件。
何时syslog 是用来记录错误的daemon.err 所有日志消息都使用设施/严重性。
使用这些选项来控制 MysqDD 伐木不受欢迎。若要将错误日志输出写入系统日志,请按 第7.4.2.8节,"系统日志的错误记录" .为了控制设备,使用服务器 log_syslog_facility 系统变量。
--syslog-tag=tag
命令行格式 --syslog-tag=tag
反对 是的
登录到syslog ,来自 mysqld_safe 和 MysqDD 是以 mysqld_safe 和 mysqld 分别。要指定标识符的后缀,请使用 把标识符修改为 和 . --syslog-tag=tagmysqld_safe-tagmysqld-tag
使用这个选项来控制 MysqDD 伐木不受欢迎。使用服务器 log_syslog_tag 系统变量。看 第7.4.2.8节,"系统日志的错误记录" .
--timezone=timezone
命令行格式 --timezone=timezone
类型 弦
设置TZ 指定的选项值中的时差环境变量.请查阅您的操作系统文档,了解合法的时差规格格式.
--user={user_name|user_id}
命令行格式 --user={user_name|user_id}
类型 弦
类型 数字的
运行 MysqDD 服务器作为拥有名称的用户user_name 或数字用户标识user_id . ( “ 使用者 ” 在此上下文中,指的是一个系统登录帐户,而不是列在赠款表中的mysql用户。)
如果你执行 mysqld_safe 与… --defaults-file 或 --defaults-extra-file 选项命名选项文件,该选项必须是命令行上的第一个选项,否则将不使用该选项文件。例如,此命令不使用指定的选项文件:
mysql> mysqld_safe --port=port_num --defaults-file=file_name
相反,请使用以下命令:
mysql> mysqld_safe --defaults-file=file_name --port=port_num
… MysqLD_安全 编写脚本的目的是使其通常能够启动一个从mysql的源或二进制分布中安装的服务器,尽管这些类型的分布通常在稍有不同的位置安装服务器。(见 第2.1.5节,"安装布局" .) MysqLD_安全 预期下列条件之一是真实的:
-
服务器和数据库可以相对于工作目录找到 MysqLD_安全 已被调用)。对于二进制分布, MysqLD_安全 在其工作目录下
bin
和data
目录。对于源分布,它寻找libexec
和var
目录。如果你执行了 MysqLD_安全 你的mysql安装目录(例如,/usr/local/mysql
二进制分布)。 -
如果无法找到与工作目录相关的服务器和数据库, MysqLD_安全 尝试用绝对路径名定位它们。典型的地点是
/usr/local/libexec
和/usr/local/var
.实际位置是根据构建时配置到分布中的值确定的。如果在配置时指定的位置上安装了mysql,那么它们应该是正确的。
因为 MysqLD_安全 尝试根据自己的工作目录找到服务器和数据库,可以在任何地方安装mysql的二进制分布,只要您运行 MysqLD_安全 来自mysql安装目录:
<span style="background-color:#ffffff"><span style="color:#555555"><span style="background-color:#f8f8f8"><span style="color:#000000"><code class="language-terminal">cd <em>mysql_installation_directory</em>
bin/mysqld_safe &</code></span></span></span></span>
如果 MysqLD_安全 失败,即使从mysql安装目录调用,也要指定 --ledir 和 --datadir 显示服务器和数据库位于系统中的目录的选项。
MysqLD_安全 尝试使用 睡眠 和 约会日期 系统实用程序,以确定它尝试启动的每秒次数。如果这些工具存在,每秒的启动量大于5, MysqLD_安全 在重新开始前等待1秒钟。这是为了防止在重复故障时过多使用CPU。(虫#11761530,虫#54035)
当你使用 MysqLD_安全 开始 MysqDD , MysqLD_安全 安排来自自身和来自自身的错误(和通知)消息 MysqDD 去同一个目的地。
有几个 MysqLD_安全 控制这些信息的目的地的备选办法:
-
--log-error=file_name:将错误信息写入命名错误文件。
-
--syslog :将错误信息写入
syslog
关于支持 伐木工人 程序。 -
--skip-syslog :不要将错误讯息写入
syslog
.将消息写入默认错误日志文件(
(在数据目录中),或到指定的文件,如果 --log-error 给出了备选办法。host_name
.err
如果没有提供这些选项,默认情况是 --skip-syslog .
何时 MysqLD_安全 写一条消息,通知到日志目的地(syslog
或错误日志文件)及stdout
.错误到达日志记录目的地stderr
.
控制的 MysqDD 从 MysqLD_安全 反对。使用服务器的本地语言syslog
代之以支持。详情请参阅 第7.4.2.8节,"系统日志的错误记录" .
.
6.3.1 MysqId----mySQL服务器
MysqId 也称为mysql服务器,是一个单一的多线程程序,在mysql安装中完成大部分工作。它不会产生额外的进程。mysql服务器管理对包含数据库和表的mysql数据目录的访问。数据目录也是日志文件和状态文件等其他信息的默认位置。
注意事项
一些安装包包含名为服务器的调试版本 Mysqld-调试 .以这个版本代替 MysqId 有关调试支持、内存分配检查和跟踪文件支持(参见 第7.9.1.2节,"创建跟踪文件" ).
当mysql服务器启动时,它监听来自客户端程序的网络连接,并代表这些客户端管理对数据库的访问。
… MysqId 程序有许多可在启动时指定的选项.要获得完整的选项列表,请运行此命令:
mysqld --verbose --help
Mysql服务器还拥有一组系统变量,这些变量在运行时影响其运行。系统变量可以在服务器启动时设置,其中许多变量可以在运行时更改以实现动态服务器重新配置。mysql服务器还有一组状态变量,可以提供有关其操作的信息。您可以监控这些状态变量来访问运行时性能特性。
有关mysql服务器命令选项、系统变量和状态变量的完整描述,请参阅 Section 7.1, “The MySQL Server” .有关安装mysql和设置初始配置的信息,请参阅 Chapter 2, 安装mysql .
MysqDD 也称为mysql服务器,是一个单一的多线程程序,在mysql安装中完成大部分工作。它不会产生额外的进程。mysql服务器管理对包含数据库和表的mysql数据目录的访问。数据目录也是日志文件和状态文件等其他信息的默认位置。
注意事项
一些安装包包含名为服务器的调试版本 Mysqld-调试 .以这个版本代替 MysqDD 有关调试支持、内存分配检查和跟踪文件支持(参见 第7.9.1.2节,"创建跟踪文件" ).
当mysql服务器启动时,它监听来自客户端程序的网络连接,并代表这些客户端管理对数据库的访问。
… MysqDD 程序有许多可在启动时指定的选项.要获得完整的选项列表,请运行此命令:
mysqld --verbose --help
Mysql服务器还拥有一组系统变量,这些变量在运行时影响其运行。系统变量可以在服务器启动时设置,其中许多变量可以在运行时更改以实现动态服务器重新配置。mysql服务器还有一组状态变量,可以提供有关其操作的信息。您可以监控这些状态变量来访问运行时性能特性。
有关mysql服务器命令选项、系统变量和状态变量的完整描述,请参阅 Section 7.1, “The MySQL Server” .有关安装mysql和设置初始配置的信息,请参阅 Chapter 2, 安装mysql .