查看“Mysqld safe”的源代码
←
Mysqld safe
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
mysqld_safe是在Unix系统上启动MySql服务器的推荐方式。mysqld_safe添加了一些新的安全特性,诸如错误发生时自动重启、记录运行时日志。 mysqld_safe会尝试去启动一个可执行的mysqld。mysqld_safe无法识别的选项会传递给mysqld。 注意 对于某些 Linux 平台,从 RPM 或 Debian 安装 MySQL 包时会包含 systemd 支持来管理 MySQL 服务器的启动和关闭。在这些平台上,不需要安装 mysqld_safe。 在使用 systemd 进行服务器管理的平台上不使用 mysqld_safe 的一个影响是,不支持在选项文件中使用 [mysqld_safe] 或 [safe_mysqld] 部分,并且可能导致意外行为。 mysqld_safe 尝试启动一个名为 mysqld 的可执行文件。如果要覆盖默认行为并明确指定要运行的服务器名称,请在 mysqld_safe 中指定 --mysqld 或 --mysqld-version 选项。您还可以使用 --ledir 来指示 mysqld_safe 寻找服务器的目录。 许多 mysqld_safe 的选项与 mysqld 的选项相同。 对于 mysqld_safe 不识别的选项,如果在命令行中指定了这些选项,则会传递给 mysqld,但如果在选项文件的 [mysqld_safe] 组中指定了这些选项,则会被忽略。 mysqld_safe 从选项文件的 [mysqld]、[server] 和 [mysqld_safe] 部分读取所有选项。例如,如果您像这样指定了一个 [mysqld] 部分,mysqld_safe 将找到并使用 --log-error 选项: [mysqld] log-error=error.log 为了保持向后兼容性,mysqld_safe 还会读取 [safe_mysqld] 部分,但为了使其更加现代化,您应将这样的部分重命名为 [mysqld_safe]。 mysqld_safe 可以接受来自命令行和选项文件的选项。 ===--help=== 显示帮助消息并退出。 ===--basedir=dir_name=== MySQL安装目录的路径。 ===--core-file-size=size=== mysqld应能够创建的核心文件的大小。选项值传递给ulimit -c命令。 注意 innodb_buffer_pool_in_core_file变量可用于在支持此功能的操作系统上减小核心文件的大小。 ===--datadir=dir_name=== 数据目录的路径。 ===--defaults-extra-file=file_name=== 除了通常的选项文件之外,还要读取此选项文件。如果文件不存在或无法访问,服务器将以错误退出。如果file_name不是绝对路径名,则解释为相对于当前目录。如果使用此选项,它必须是命令行上的第一个选项。 ===--defaults-file=file_name=== 只使用给定的选项文件。如果文件不存在或无法访问,服务器将以错误退出。如果file_name不是绝对路径名,则解释为相对于当前目录。如果使用此选项,它必须是命令行上的第一个选项。 ===--ledir=dir_name=== 如果mysqld_safe找不到服务器,则使用此选项指示服务器所在的目录的路径名。 此选项仅接受在命令行上使用,而不接受在选项文件中使用。对于使用systemd的平台,可以在MYSQLD_OPTS的值中指定该值。 ===--log-error=file_name=== 将错误日志写入给定的文件。 ===--mysqld-safe-log-timestamps=== 此选项控制mysqld_safe生成的日志输出中的时间戳格式。以下列表描述了允许的值。对于任何其他值,mysqld_safe记录一条警告并使用UTC格式。 ====UTC, utc==== ISO 8601 UTC格式(与服务器的--log_timestamps=UTC相同)。这是默认值。 ====SYSTEM, system==== ISO 8601本地时间格式(与服务器的--log_timestamps=SYSTEM相同)。 ====HYPHEN, hyphen==== YY-MM-DD h:mm:ss格式,与MySQL 5.6中的mysqld_safe相同。 ====LEGACY, legacy==== YYMMDD hh:mm:ss格式,与MySQL 5.6之前的mysqld_safe相同。 ===--malloc-lib=[lib_name]=== 使用内存分配的库名字,而不是系统的malloc()库。选项的值必须是以下目录之一:/usr/lib、/usr/lib64、/usr/lib/i386-linux-gnu或/usr/lib/x86_64-linux-gnu。 --malloc-lib选项通过修改LD_PRELOAD环境变量的值来影响动态链接,从而使加载器在mysqld运行时能找到内存分配库: *如果没有给出该选项或者给出时没有指定值(--malloc-lib=),LD_PRELOAD不会被修改,也不会尝试使用tcmalloc。 *在MySQL 8.0.21之前,如果该选项被指定为--malloc-lib=tcmalloc,mysqld_safe会在/usr/lib中查找tcmalloc库。如果找到tmalloc,则将其路径添加到mysqld的LD_PRELOAD值的开头。如果找不到tcmalloc,则mysqld_safe会报错中止。 *从MySQL 8.0.21开始,--malloc-lib选项不允许使用tcmalloc作为值。 *如果该选项被指定为--malloc-lib=/path/to/some/library,该完整路径将被添加到LD_PRELOAD值的开头。如果该完整路径指向一个不存在或不可读的文件,mysqld_safe会报错中止。 *对于mysqld_safe添加路径名称到LD_PRELOAD的情况,它会将该路径添加到该变量已有值的开头。 注意: 在使用systemd管理服务器的系统上,无法使用mysqld_safe。而是通过在/etc/sysconfig/mysql中设置LD_PRELOAD来指定分配库。 Linux用户可以通过在my.cnf文件中添加以下行来在任何已安装tcmalloc软件包的平台上使用libtcmalloc_minimal.so库: [mysqld_safe] malloc-lib=tcmalloc 若要使用特定的tcmalloc库,请指定其完整路径名。例如: [mysqld_safe] malloc-lib=/opt/lib/libtcmalloc_minimal.so ===--mysqld=prog_name=== 要启动的服务器程序(在ledir目录中)的名称。如果你使用的是MySQL二进制发行版,但数据目录位于二进制发行版之外,就需要使用这个选项。如果mysqld_safe找不到服务器,使用--ledir选项指示服务器所在的目录的路径名。 该选项只接受命令行参数,不接受选项文件。对于使用systemd的平台,则可以在MYSQLD_OPTS的值中指定该选项的值。 ===--mysqld-version=suffix=== 该选项类似于--mysqld选项,但只需指定服务器程序名称的后缀。基础名称默认为mysqld。例如,如果使用--mysqld-version=debug,mysqld_safe会在ledir目录中启动mysqld-debug程序。如果--mysqld-version的参数为空,mysqld_safe会在ledir目录中使用mysqld。 该选项只接受命令行参数,不接受选项文件。对于使用systemd的平台,则可以在MYSQLD_OPTS的值中指定该选项的值。 ===--nice=priority=== 使用"nice"程序将服务器的调度优先级设置为给定值。 ===--no-defaults=== 不要读取任何选项文件。如果由于从选项文件中读取未知选项而导致程序启动失败,则可以使用--no-defaults来防止读取这些选项。如果使用该选项,它必须是命令行上的第一个选项。 ===--open-files-limit = count=== mysqld应该能够打开的文件数目。选项值传递给ulimit -n。 注意 为了正常运行,您必须以root身份启动mysqld_safe。 ===--pid-file = file_name=== mysqld应该用于其进程ID文件的路径名。 ===--plugin-dir = dir_name=== 插件目录的路径名。 ===--port = port_num=== 服务器在侦听TCP/IP连接时应使用的端口号。除非由root操作系统用户启动服务器,否则端口号必须为1024或更高。 ===--skip-kill-mysqld=== 不要尝试在启动时终止杂乱的mysqld进程。此选项仅适用于Linux。 ===--socket = path=== 服务器在本地连接时应使用的Unix套接字文件。 ===--syslog,--skip-syslog=== --syslog导致错误消息发送到支持logger程序的系统的syslog。 --skip-syslog禁止使用syslog;消息将写入错误日志文件。 当使用syslog进行错误记录时,所有日志消息都使用daemon.err设施/严重性。 已弃用使用这些选项来控制mysqld日志记录。 ===--syslog-tag = tag=== 对于日志记录到syslog中的消息,mysqld_safe和mysqld分别带有标识符mysqld_safe和mysqld。要为这些标识符指定后缀,请使用--syslog-tag = tag,它将修改标识符为mysqld_safe-tag和mysqld-tag。 已弃用使用此选项来控制mysqld日志记录。请改为使用服务器log_syslog_tag系统变量。 ===--timezone=timezone=== 将TZ时区环境变量设置为给定的选项值。请参考操作系统文档了解合法的时区规范格式。 ===--user={user_name|user_id}=== 以具有名称user_name或数字用户ID user_id的用户身份运行mysqld服务器。(这里的“用户”是指系统登录账户,而不是在授权表中列出的MySQL用户。) 如果您使用--defaults-file或--defaults-extra-file选项来命名一个选项文件来执行mysqld_safe,则该选项必须是命令行中给出的第一个选项,否则选项文件将不会被使用。例如,以下命令不会使用命名的选项文件: mysql> mysqld_safe --port=port_num --defaults-file=file_name 而应使用以下命令: mysql> mysqld_safe --defaults-file=file_name --port=port_num mysqld_safe脚本通常可以启动从源代码或二进制发行版安装的MySQL服务器,尽管这些类型的发行版通常在稍微不同的位置安装服务器。mysqld_safe期望满足以下条件之一: *服务器和数据库可以相对于工作目录(即调用mysqld_safe的目录)找到。对于二进制发行版,mysqld_safe在其工作目录下查找bin和data目录。对于源代码发行版,它查找libexec和var目录。如果您从MySQL安装目录(例如二进制发行版的/usr/local/mysql)执行mysqld_safe,则应满足此条件。 *如果服务器和数据库无法相对于工作目录找到,mysqld_safe尝试通过绝对路径名来定位它们。典型位置是/usr/local/libexec和/usr/local/var。实际位置取决于构建时配置到发行版中的值。如果MySQL安装在指定的位置上,在构建时配置的值应该是正确的。 由于mysqld_safe尝试根据自己的工作目录找到服务器和数据库,所以您可以将MySQL的二进制发行版安装在任何地方,只要您从MySQL安装目录运行mysqld_safe即可: cd mysql_installation_directory bin/mysqld_safe & 如果即使在从MySQL安装目录调用mysqld_safe的情况下,mysqld_safe仍然失败,请使用--ledir和--datadir选项指示在系统上服务器和数据库所在的目录。 mysqld_safe尝试使用sleep和date系统工具来确定其每秒尝试启动的次数。如果这些工具存在,并且每秒尝试启动次数大于5,则mysqld_safe在重新启动之前等待1秒钟。这样可以防止在重复失败的情况下CPU使用过高。(Bug#11761530,Bug#54035) 当您使用mysqld_safe启动mysqld时,mysqld_safe会安排将自身和mysqld的错误(和通知)消息发送到相同的目标。 有几个mysqld_safe选项可控制这些消息的目标: *--log-error=file_name:将错误消息写入指定的错误文件。 *--syslog:将错误消息写入支持logger程序的系统日志中。 *--skip-syslog:不将错误消息写入系统日志。消息将被写入默认的错误日志文件(数据目录中的host_name.err),或者如果指定了--log-error选项,则写入指定的文件。 如果没有给出这些选项中的任何一个,则默认为--skip-syslog。 当mysqld_safe写入消息时,通知会发送到日志目标(系统日志或错误日志文件)和标准输出(stdout)。错误信息会发送到日志目标和标准错误(stderr)。 注意: 从mysqld_safe控制mysqld日志已被弃用。请改用服务器本身的原生syslog支持。
返回至“
Mysqld safe
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
基础知识
正则表达式
Markdown
分布式
项目管理
系统集成项目管理基础知识
云原生
Docker
云原生安全
云原生词汇表
十二因素应用
Kubernetes
音频处理
音频合成
Edge-tts
CMS系统
Docsify
VuePress
Mediawiki
自动生成
Marp
CI/CD
GitLab
设计
颜色
平面设计
AI
数字人
操作系统
GNU/Linux
数据库
Mysql
工具
链入页面
相关更改
特殊页面
页面信息