在百度上如何上传自己的网站,如何修改wordpress站,官方app下载,网站空间费用一年多少MySQL Server
mysqld#xff0c;也称为MySQL Server#xff0c;是一个单线程多任务的程序#xff0c;它在MySQL安装中执行大部分工作。它不会生成额外的进程。MySQL Server管理对包含数据库和表的MySQL数据目录的访问。数据目录也是其他信息#xff08;如日志文件和状态文…MySQL Server
mysqld也称为MySQL Server是一个单线程多任务的程序它在MySQL安装中执行大部分工作。它不会生成额外的进程。MySQL Server管理对包含数据库和表的MySQL数据目录的访问。数据目录也是其他信息如日志文件和状态文件的默认位置。
注意 一些安装包包含一个名为mysqld-debug的服务器调试版本。为了获得调试支持、内存分配检查和跟踪文件支持可以调用这个版本而不是mysqld。
当MySQL服务器启动时它会监听来自客户端程序的网络连接并代表这些客户端管理对数据库的访问。
mysqld程序在启动时有许多可以指定的选项。要获取选项的完整列表可以运行以下命令
mysqld --verbose --help
MySQL Server 确实有一组系统变量system variables这些变量在运行时影响其操作。系统变量可以在服务器启动时设置并且其中的许多变量可以在运行时更改以实现动态服务器重新配置。
系统变量定义了服务器的操作特性如缓存大小、连接数限制、排序缓冲区大小等。您可以使用 SET GLOBAL 语句来更改全局系统变量这将影响整个MySQL服务器实例。同样您可以使用 SET SESSION 语句来更改会话系统变量这将仅影响当前客户端会话。
除了系统变量外MySQL Server 还有一组状态变量status variables这些变量提供了关于服务器操作的信息。状态变量提供了关于服务器性能、连接、查询执行和其他服务器活动的统计信息。通过查询这些状态变量您可以监视MySQL服务器的运行时性能特性并据此进行调优或故障排除。
mysqld_safe — MySQL Server启动脚本
mysqld_safe 是 Unix 系统上推荐的方式来启动 mysqld 服务器。mysqld_safe 添加了一些安全特性例如当发生错误时重启服务器以及将运行时信息记录到错误日志中。稍后在本节中会详细描述错误日志记录。
注意
对于某些 Linux 平台通过 RPM 或 Debian 包安装的 MySQL 包括 systemd 支持来管理 MySQL 服务器的启动和关闭。在这些平台上不需要 mysqld_safe因为它是不必要的。在使用 systemd 进行服务器管理的平台上不使用 mysqld_safe 的一个影响是在选项文件中使用 [mysqld_safe] 或 [safe_mysqld] 部分是不被支持的并可能导致意外的行为。
mysqld_safe 试图启动一个名为 mysqld 的可执行文件。要覆盖默认行为并明确指定要运行的服务器名称可以使用 --mysqld 或 --mysqld-version 选项来指定给 mysqld_safe。你也可以使用 --ledir 来指示 mysqld_safe 应该在哪个目录中查找服务器。
mysqld_safe 的许多选项与 mysqld 的选项相同。
mysqld_safe 脚本会从配置文件中读取 [mysqld]、[server] 和 [mysqld_safe] 部分中的选项。这意味着如果您在配置文件的 [mysqld] 部分中指定了某些选项那么当您使用 mysqld_safe 来启动 MySQL 服务器时这些选项将会被 mysqld_safe 传递给实际的 mysqld 进程。
例如当您在配置文件中通常是 my.cnf 或 my.ini指定了 [mysqld] 部分并且在该部分中包含了如 --log-error 这样的选项时mysqld_safe 脚本会找到并使用这些选项来启动 mysqld 服务器。
[mysqld]
log-errorerror.log
为了向后兼容性mysqld_safe 确实也会读取 [safe_mysqld] 部分中的选项但为了保持与当前的最佳实践一致您应该将这样的部分重命名为 [mysqld_safe]。
mysqld_safe 可以在命令行和选项文件中接受选项这些选项可以影响 mysqld_safe 脚本如何启动和管理 mysqld 进程。以下是一个简化的表格列出了 mysqld_safe 的一些常用选项 显示帮助消息并退出。 MySQL安装目录的路径。 mysqld应该能够创建的核心文件的大小。选项值被传递给ulimit-c。
注意innodb_buffer_pool_in_core_file变量可用于减小支持它的操作系统上的核心文件的大小。 数据目录的路径。 除了读取通常的选项文件外还要读取此选项文件。如果文件不存在或无法访问则服务器将退出并返回错误。如果file_name不是绝对路径名则会相对于当前目录进行解释。如果使用此选项则它必须是命令行上的第一个选项。 仅使用给定的选项文件。如果文件不存在或无法访问则服务器将退出并返回错误。如果file_name不是绝对路径名则会相对于当前目录进行解释。如果使用此选项则它必须是命令行上的第一个选项。 如果mysqld_safe找不到服务器请使用此选项指示服务器所在目录的路径名。
此选项仅在命令行中接受在选项文件中不接受。在使用systemd的平台上可以在MYSQLD_OPTS的值中指定该值。 将错误日志写入给定文件。 此选项控制mysqld_safe生成的日志输出中时间戳的格式。以下列表描述了允许的值。对于任何其他值mysqld_safe都会记录一个警告并使用UTC格式。 UTCutc ISO 8601 UTC格式与服务器的--log_timestampsUTC相同。这是默认设置。 SYSTEMsystem ISO 8601本地时间格式与服务器的--log_timestampsSYSTEM相同。 HYPHENhyphen YYY-MM-DD h:MM:ss格式如MySQL 5.6的mysqld_safe。 LEGACY, legacy YYYMMDD hh:mm:ss格式与MySQL 5.6之前的mysqld_safe一样。 是用于内存分配的库的名称而不是系统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-libtcmallocmysqld_safe将在/usr/lib中查找tcmalloc库。如果找到了tmalloc它的路径名将添加到mysqld的LD_PRELOAD值的开头。如果找不到tcmallocmysqld_safe将中止并返回错误。 从MySQL 8.0.21开始tcmalloc不是--malloc-lib选项允许的值。
如果该选项给定为--malloc-lib/path/to/some/library则该完整路径将添加到LD_PRELOAD值的开头。如果完整路径指向不存在或不可读的文件mysqld_safe将中止并返回错误。对于mysqld_safe向LD_PRELOAD添加路径名的情况它会将路径添加到变量已经具有的任何现有值的开头。
注意在使用systemd管理MySQL服务的系统上mysqld_safe通常不会被直接使用因为systemd服务单元文件会负责启动和管理MySQL进程。在这种情况下为了设置自定义的内存分配库你需要通过systemd的环境变量或覆盖文件来指定LD_PRELOAD。
Linux用户可以在/usr/lib中安装了tcmalloc包的任何平台上使用libtcmalloc_minimal.so库方法是将以下行添加到my.cnf文件中
[mysqld_safe]
malloc-libtcmalloc
要使用特定的tcmalloc库请指定其完整路径名。例如
[mysqld_safe]
malloc-lib/opt/lib/libtcmalloc_minimal.so 在MySQL的mysqld_safe脚本中--ledir选项用于指定包含MySQL服务器程序的目录路径即mysqld的位置。这在你使用MySQL的二进制发行版但数据目录位于二进制发行版外部时特别有用。
如果mysqld_safe无法找到服务器程序你可以使用--ledir选项来指定服务器程序所在的目录。
这个选项只能在命令行上使用不能放在选项文件中。在使用systemd管理MySQL服务的系统上你可以通过在MYSQLD_OPTS环境变量中设置--ledir的值来指定这个选项。 此选项类似于--mysqld选项但只指定服务器程序名的后缀。基本名称假定为mysqld。例如如果使用--mysqld versiondebugmysqld_safe将启动ledir目录中的mysqld调试程序。如果--mysqld版本的参数为空那么mysqld_safe将使用ledir目录中的mysqld。
此选项仅在命令行中接受在选项文件中不接受。在使用systemd的平台上可以在MYSQLD_OPTS的值中指定该值。 使用nice程序将服务器的调度优先级设置为给定值。 不要读取任何选项文件。如果由于从选项文件中读取未知选项而导致程序启动失败则不能使用任何默认值来阻止读取这些选项。如果使用此选项则它必须是命令行上的第一个选项。 mysqld应该能够打开的文件数。选项值被传递给ulimit-n。
注意必须以root身份启动mysqld_safe才能正常工作。 mysqld应该用于其进程ID文件的路径名。 插件目录的路径名。 服务器在侦听TCP/IP连接时应使用的端口号。除非服务器由根操作系统用户启动否则端口号必须为1024或更高。 该选项--skip-kill-mysqld通常用于mysqld_safe脚本中以指示在启动MySQL服务器时不要尝试杀死终止任何可能已存在的“流浪”straymysqld进程。
这个选项通常只在Linux系统上有效因为mysqld_safe脚本在启动服务器之前会检查是否已有一个mysqld进程正在运行。如果存在这样的进程mysqld_safe通常会尝试终止它以避免端口冲突或其他潜在问题。 在MySQL中Unix套接字文件Unix socket file是MySQL服务器用于监听本地连接的一个特殊文件。当客户端如mysql命令行工具与MySQL服务器在同一台机器上通信时它们通常会使用Unix套接字而不是TCP/IP套接字。Unix套接字提供了一种在同一台机器上的进程之间进行通信的机制通常比TCP/IP连接更快、更高效。 --syslog会将错误消息发送到支持记录器程序的系统上的syslog--skip syslog禁止使用syslog消息被写入错误日志文件。
当syslog用于错误日志记录时daemon.err功能/严重性用于所有日志消息。
不赞成使用这些选项来控制mysqld日志记录。 将TZ时区环境变量设置为给定的选项值。 以名称为user_name或数字用户ID为user_ID的用户的身份卸载mysqld服务器。在此上下文中“用户”指的是系统登录帐户而不是授权表中列出的MySQL用户。
如果使用--defaults file或--defaults extra file选项执行mysqld_safe来命名选项文件则该选项必须是命令行中给定的第一个选项否则不使用该选项文件。例如此命令不使用命名选项文件
mysql mysqld_safe --portport_num --defaults-filefile_name
相反请使用以下命令
mysql mysqld_safe --defaults-filefile_name --portport_num
编写mysqld_safe脚本时它通常可以启动从MySQL的源发行版或二进制发行版安装的服务器尽管这些类型的发行版通常将服务器安装在略有不同的位置。mysqld_safe希望以下条件之一成立
服务器和数据库可以相对于工作目录调用mysqld_safe的目录找到。对于二进制发行版mysqld_safe在其工作目录下查找bin和数据目录。对于源发行版它会查找libexec和var目录。如果从MySQL安装目录执行mysqld_safe例如二进制发行版为/usr/local/MySQL则应满足此条件。如果相对于工作目录找不到服务器和数据库mysqld_safe会尝试通过绝对路径名来定位它们。典型的位置是/usr/local/libexec和/usr/local/var。实际位置由构建分发时配置到分发中的值确定。如果MySQL安装在配置时指定的位置则它们应该是正确的。
由于mysqld_safe试图找到相对于其自身工作目录的服务器和数据库因此您可以在任何地方安装MySQL的二进制发行版只要您从MySQL安装目录运行mysqld_safe
cd mysql_installation_directory
bin/mysqld_safe
如果mysqld_safe失败即使是从MySQL安装目录调用也可以指定--ledir和--datadir选项来指示服务器和数据库在系统中所处的目录。
mysqldsafe尝试使用sleep和date系统实用程序来确定每秒尝试启动的次数。如果存在这些实用程序并且每秒尝试的启动次数大于5次那么mysqld_safe将等待整整一秒钟然后再启动。这是为了防止在重复故障的情况下过度使用CPU。错误号11761530错误号54035
当您使用mysqld_safe启动mysqld时mysqld_safe会安排来自自身和mysqld的错误和注意消息到达相同的目的地。
有几个mysqld_safe选项用于控制这些消息的目的地
--log errorfile_name将错误消息写入命名的错误文件。--syslog在支持记录器程序的系统上将错误消息写入syslog。--跳过syslog不要将错误消息写入syslog。消息会写入默认的错误日志文件数据目录中的host_name.err或者如果给定--log error选项则会写入命名文件。
如果没有给出这些选项则默认为--skip syslog。
当mysqld_safe写入消息时通知会转到日志记录目标syslog或错误日志文件和stdout。错误注意不赞成从mysqld_safe控制mysqld日志记录。请改用服务器的本机syslog支持。