简介

MySQL 服务器有许多不同的名称,并且已经存在了几十年。有些人简单地称它为“MySQL”,有些人称它为“MySQL daemon”,而其他人仍然选择简单地将两者结合起来并称之为“mysqld”(“MySQL daemon”的缩写)。无论如何,事实仍然是它在我们能想到的几乎所有行业中都非常受欢迎和使用。使用服务器的人通常使用它来支持网络上的软件解决方案,但由于其高可用性、包括数据存储和安全性在内的性能,它的用例因行业而异。

[

弧型

](/arctype)[

在 Ubuntu 20.04 上设置 MySQL 8 主从复制

Arctype 团队为 Arctype ・ 21 年 10 月 14 日 ・ 4 分钟阅读

#mysql #replication #tutorial

](/arctype/set-up-mysql-8-master-slave-replication-on-ubuntu-2004-3f21)

  • 高可用性。 在支持教育、酒店或金融服务时,MySQL 的高可用性功能至关重要。由于该守护程序具有大量可以实现的负载均衡器(ProxySQL、MaxScale、HAProxy等),因此它在确保高中基础设施的正常运行时间方面发挥着至关重要的作用,大学和其他教育机构。

  • **性能。**在技术含量高的组织背后,守护进程用于各种场景,可以将支持业务的应用程序的性能推到最大。这就是 MySQL 首先有文档支持的原因——技术高超的人总是可以指导他们的员工了解 MySQL 的行为方式、原因和时间。

  • 简单性。 最后,在某些用例中,守护进程只是为了在其中包含一些数据。在这种情况下,运行由 MySQL 支持的服务的人可能对它知之甚少,可能对学习不够关心,或者两者兼而有之——只要它能工作就很好。

守护进程背后的科学

MySQL 守护进程存在的核心原因是让我们“深入了解” MySQL 并运行命令,就好像我们通过 CLI 在数据库内部一样:

[](https://res.cloudinary.com/practicaldev/image/fetch/s--jGrx-m4a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://lh5.googleusercontent. com/_Qc104G-MFbrqjwihGao0hjBUuFOZ6bx9z4y8UKLWSwnjvtrES-91PSe-Rc1QQu_NQXrii4JNIWTmdD5BlIoyQ3Q7aPyzTejNb2aoYp-9tIepqLbsKHokeLn_ynQPIIqswP0HZMz)

要查看它的所有功能,我们使用--help option启动它:

[](https://res.cloudinary.com/practicaldev/image/fetch/s--48LA8J6F--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://lh4.googleusercontent.com/ BMAsIzovJCAdo_uT2OAnE_ogm0mw8XeAsyiBhInT7tFULGAFwElvQOr0Omp0OHuJRjZBgngZdzyotY4XFipjk6T9axwzm7fpdAjU2CN9d7oEmzVo_PUWsNZmGNdj80B9snQElOmF)

要以良好的格式查看所有 mysqld 选项,请调用mysqld --verbose

[终端截图](https://res.cloudinary.com/practicaldev/image/fetch/s--_bzeyvlz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://lh6.googleusercontent. com/WOQ69NBBffLHv_GVlQvq6fd1OJoBLLQhNeB9dJQAODOqZc_YpPf_y6fkpcI6JTFXLf0xuPBNg0wyq6dlIFaEZ7CMhptZiTl67o8Ilu7v9vwj_vro5CxL0-tblztq1UtvDXvm-Lmg)

上面的命令将让我们看到守护进程可以做的一切;从使用选项到变量——一切都在这里。

[mysqld 输出的屏幕截图](https://res.cloudinary.com/practicaldev/image/fetch/s--2_pFMluq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://lh5. googleusercontent.com/xfWaJJDpKo8LR9cbIi_igi2Yn4pPUiGTUp5a9yJuvEL8vdxnwAHyYBMzJ8h3upvcVIA_1IVEAs7FZDs2HDZpONc8OCA2hv1e-dfjyojbbsuiscz5I490--7e3kaN26FOOqLGZfUL)

配置如何工作?

守护进程允许我们查看我们的 MySQL 实例构建的所有内容,但要正确理解我们必须处理的所有内容,我们必须查看配置本身。 MySQL 配置文件位于 Linux 的/var/lib/mysql/目录和 Windows 的 MySQL 版本文件夹内,分别称为my.cnfmy.ini。该文件的内容在两个操作系统上几乎相同,尽管对该文件的 Windows 版本的注释稍多一些。一个例子可以在下面看到:

[mysqld 配置的屏幕截图](https://res.cloudinary.com/practicaldev/image/fetch/s--YOgt0zrL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://arctype .com/blog/content/images/2021/10/image-60.png)

该文件包含守护程序显示的所有设置,范围从与 MySQL 客户端本身相关的设置到 SQL 模式。所有这些选项也可以在运行时使用以“--”开头的参数进行设置:我们可以通过指定mysqld --ansi使 MySQL 以 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 摄取数据的位置。MySQL在Windows上的默认值是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](https://dev.to__GHOST_URL__/mysql-text-type/)中最有效地使用[TEXT 类型的数据。

[

弧型

](/arctype)[

大数据 + MySQL u003d Mission InnoPossible?

Arctype 团队为 Arctype ・ 21 年 5 月 25 日 ・ 9 分钟阅读

#database #mysql #bigdata #innodb

](/arctype/big-data-mysql-mission-innopossible-573)

在上面的大数据和 MySQL 文章中,我们介绍了如何配置缓冲池大小、缓冲池实例和 ACID 合规级别,以便 MySQL 可以处理最大量的数据。

配置 MySQL 守护进程以获得高安全性

我们将在这篇文章中介绍的最后一个示例是加密。有数百个 mysqld 参数跨越数百个用例 - 如果您真的想深入研究,请考虑查看MySQL 提供的参数列表。

[

弧型

](/arctype)[

如何在 Ubuntu 20.04 上使用 SSL/TLS 保护 MySQL 8

Arctype 团队为 Arctype ・ 21 年 10 月 20 日 ・ 6 分钟阅读

#mysql #教程

](/arctype/how-to-secure-mysql-8-with-ssltls-on-ubuntu-2004-332k)

在上面的 SSL 帖子中,我们介绍了如何修改参数,例如...

  • require_secure_transport

  • bind_address

  • have_openssl

  • have_ssl

... 支持安全连接到 MySQL。配置服务器后,您可以在 MySQL 客户端](https://arctype.com/mysql/connect/aws-ssl-mysql)中使用[SSL 选项来确保您的连接是加密的!

总结

mysqld,MySQL 守护程序,MySQL 服务器,或简称 MySQL,在全球数千个行业的数百万个网站上运行:它被 Facebook 等全球社交媒体巨头使用,是世界上最快的数据泄露搜索引擎和小型初创公司。对于每个开发人员和数据库管理员来说,正确理解守护程序是什么、它的作用以及使用它的原因绝对是至关重要的。

在过去的几年里,MySQL 有了长足的发展,添加了许多新参数以进一步扩展其用例,它现在成为数据领域的现代王者,原因是:MySQL 为开发人员提供了进入内部的绝佳机会它的“大脑”,而mysqld主要负责这种适应性。

Lukas 是一名道德黑客、MySQL 数据库管理员,并且经常在会议上发言。自 2014 年以来,Lukas 发现并负责任地披露了立陶宛和国外一些访问量最大的网站的安全漏洞,包括广告、礼品购买、游戏、托管网站以及一些政府机构的网站。 Lukas 运行着世界上最大和最快的数据泄露搜索引擎之一:BreachDirectory.com,并经常在多个地方发布博客,向人们介绍信息安全和其他主题。他还在lukasvileikis.com上经营着自己的博客。

Logo

华为、百度、京东云现已入驻,来创建你的专属开发者社区吧!

更多推荐