在本文中,了解 MySQL 守护进程,也称为 mysqld。为什么开发人员关心它,它有什么作用?阅读此处以找出答案。
介绍
MySQL 服务器有许多不同的名称,并且已经存在了几十年。有些人简单地称它为“MySQL”,有些人称它为“MySQL 守护进程”,而其他人仍然选择简单地将两者结合起来并称之为“mysqld”(“MySQL 守护进程”的缩写)。无论如何,事实仍然是它在我们能想到的几乎所有行业中都非常受欢迎和使用。使用服务器的人通常使用它来支持网络上的软件解决方案,但由于其高可用性、包括数据存储和安全性在内的性能,它的用例因行业而异。
在这里,您可以了解如何使用 Linux 节点设置 MySQL 8 复制:
- 高可用性: 在支持教育、酒店或金融服务时,MySQL 的高可用性特性至关重要。由于守护进程有大量可以实现的负载均衡器(ProxySQL、MaxScale、HAProxy等),因此它在确保高中、大学和其他教育机构的基础设施正常运行方面发挥着至关重要的作用。
- 性能: 在技术含量高的组织背后,守护进程用于各种场景,可以将支持业务的应用程序的性能发挥到最大。这就是 MySQL 首先有文档支持的原因——技术含量高的人总是可以指导他们的员工了解 MySQL 如何、为什么以及何时表现出它的行为方式。
- 简单性: 最后,在某些用例中,守护进程只是为了在其中包含一些数据。在这种情况下,运行由 MySQL 支持的服务的人可能对它知之甚少,可能不太关心学习,或者两者兼而有之——只要它可以工作就很好。
守护进程背后的科学
MySQL 守护进程存在的核心原因是让我们“深入了解” MySQL 并运行命令,就好像我们通过 CLI 在数据库内部一样:
要查看它可以做的所有事情,我们使用以下--help
选项启动它:
要以良好的格式查看所有 mysqld 选项,请调用mysqld --verbose
.
上面的命令将让我们看到守护进程可以做的一切,从使用选项到变量:一切都在这里。
配置如何工作?
守护进程允许我们查看我们的 MySQL 实例构建的所有内容,但要正确理解我们必须处理的所有内容,我们必须查看配置本身。MySQL 配置文件位于/var/lib/mysql/
Linux 上的目录和 Windows 上的 MySQL 版本文件夹内,分别称为my.cnf
or 或my.ini
。该文件的内容在两个操作系统上几乎相同,尽管对该文件的 Windows 版本的注释稍多一些。一个例子可以在下面看到:
该文件包含守护程序显示的所有设置,范围从与 MySQL 客户端本身相关的设置到 SQL 模式。所有这些选项也可以在运行时使用以“–”开头的参数进行设置:我们可以通过指定使 MySQL 在 ANSI 模式下运行mysqld --ansi
,我们可以通过指定线程数来指定可用的 I/O 线程的数量( #) 在mysqld --innodb-write-io-threads=#
等。
配置以这种方式工作,因为它包含参数(有时也称为变量),然后这些参数与守护程序交互,从而改变守护程序(MySQL)作为一个整体的运作方式。
为存储和安全配置 mysqld
许多参数会影响 MySQL 的功能。一些更有趣的改变了它作为一个生态系统的功能,一些允许 MySQL 保持稳定,而一些鲜为人知的影响较小。在影响存储和安全的参数中,secure_file_priv
两者都有影响,值得一提。
secure_file_priv
和其他 mysqld 参数
最流行的参数之一是secure_file_priv
变量。此参数控制在使用LOAD DATA INFILE
语句时允许 MySQL 在何处摄取数据。Windows 上 MySQL的默认值是tmp
目录:secure_file_priv="c:/wamp64/tmp"
.
这个变量很重要,因为它限制了哪些目录可以包含有资格包含在 MySQL 数据库实例中的数据。如果我们从错误的目录将数据加载到 MySQL 中,我们将看到一条消息,概述我们应该选择一个不同的文件夹:ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
.
为大数据配置 mysqld
当然,secure_file_priv
并不孤单。我们还有很多其他变量可供选择,包括但不限于:
- 该
log-isam=filename
变量,如果我们想将所有与 MyISAM 相关的更改记录到一个文件中,这很有用 - 该
innodb-data-home-dir
参数使我们可以更改与InnoDB 存储引擎相关的文件的默认主目录 - 该
innodb-ft-total-cache-size
参数使我们能够调整全文索引缓存的大小以在 MySQL 中最有效地使用 TEXT 类型的数据
在我们的大数据和 MySQL 帖子(上面链接)中,我们介绍了如何配置缓冲池大小、缓冲池实例和 ACID 合规级别,以便 MySQL 可以处理最大数量的数据。
配置 MySQL 守护程序以获得高安全性
我们将在这篇文章中介绍的最后一个示例是加密。有数百个 mysqld 参数跨越数百个用例。如果您真的想深入了解,请考虑查看MySQL 提供的参数列表。
在这篇 SSL 文章中,我们介绍了如何修改以下参数以支持安全连接到 MySQL:
require_secure_transport
bind_address
have_openssl
have_ssl
配置服务器后,您可以使用MySQL 客户端中的 SSL 选项来确保您的连接是加密的!
概括
mysqld
、MySQL 守护进程、MySQL 服务器或简称 MySQL 在全球数千个行业的数百万个网站的幕后工作:它被 Facebook 等全球社交媒体巨头使用,被世界上最快的数据泄露搜索引擎使用,和小型初创公司一样。正确理解守护进程是什么、它做什么以及为什么使用它对于每个开发人员和数据库管理员来说绝对是至关重要的。
在过去的几年里,MySQL 有了长足的发展,添加了许多新参数以进一步扩展其用例,它现在成为数据领域的现代王者,原因是:MySQL 为开发人员提供了进入内部的绝佳机会它的“大脑”,并mysqld
在很大程度上负责这种适应性。
Lukas 是一名道德黑客、MySQL 数据库管理员,并且经常在会议上发言。自 2014 年以来,Lukas 发现并负责任地披露了立陶宛和国外一些访问量最大的网站的安全漏洞,包括广告、礼品购买、游戏、托管网站以及一些政府机构的网站。Lukas 运行着世界上最大、最快的数据泄露搜索引擎之
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2303805254@qq.com,本站将立刻删除。