Heim Datenbank MySQL-Tutorial mysql源码解读之配置文件_MySQL

mysql源码解读之配置文件_MySQL

Jun 01, 2016 pm 01:31 PM
官方下载 配置文件

bitsCN.com

    要研究mysql,最好的资源莫过于源码了,所以本人打算通过调试源码的方式来深入理解mysql的点点滴滴。搭建mysql调试环境很简单,从官方下载mysql源码,利用cmake工具生成工程即可。为了方便调试,也因为vs调试的直观性,我的源码工程是在windows平台下面的,下面进入正题。

    在vs环境下,选择mysqld工程,直接启动调试运行,此时我并没有指定任何配置文件,但程序依然正常运行,那么程序应该会使用默认的配置文件。首先需要确定两个问题,程序在哪些个目录下去寻找配置文件,以什么样的顺序来查找。通过调试发现,程序首先会分别收集windows系统目录、C:\根目录、执行码所在的父目录,如果配置了环境变量MYSQL_HOME,这个目录也会被搜集,然后在这些目录下进行查找my.ini文件,这里面涉及到主要接口是my_load_defaults和search_default_file。

    而实际情况是,这些目录里面没有任何一个配置文件,说明即使mysqld启动时,一个配置文件信息获取不到,也是可以成功启动的,那么这些默认值一定是在代码里面写死了的。现在我们要去代码里找到这些参数的默认值,以及他们是如何初始化的。在mysqld.cc里面,我们看到了全局变量global_system_variables的定义,该参数是一个结构变量,包含了大部分的mysql系统变量,下一步就是看这个全局变量何时被初始化的了。在vs里面,我们可以设置数据断点,通过数据断点我们能够知道特定内存地址是何时被改变的。我们以max_connections为例,将其地址设置数据断点,看看它是何时被改变的,果然确实被改过,堆栈如下图:

堆栈显示了初始化流程,通过分析各个函数即可以知道初始化逻辑。

代码如下图:

    这说明全局变量与value是一一对应的。逐个跟踪变量,找到变量all_sys_vars,该变量是一个结构,包含两个指针,初始化值为NULL,跟踪这个链表找到了问题的答案。在sys_vars.h头文件中,我们找到了all_sys_vars变量的影子,顺藤摸瓜,在sys_vars.cc文件里面,看到大量的静态对象,从名字可以看出,这些对象和变量有千丝万缕的联系。比如Sys_max_connections对象定义如下:

 

    这里很明白了,通过传递max_connections的地址,建立了与对象sys_var的联系,而所有sys_var对象都通过链表对象 all_sys_vars 管理。到目前为止,我们已经很清楚地知道mysql系统变量值初始化的来龙去脉了。通过--defaults-file我们可以指定配置文件。基本逻辑是,读取默认参数值后,会利用配置文件值对其进行覆盖,使配置文件的值生效。下面附几个主要类和接口:

类:

Sys_var_mybool

    Sys_var_typelib

        sys_var

 

Sys_var_ulong

    sys_var

 

接口:

my_search_option_files(搜索文件),

search_default_file_with_ext(读取配置文件内容),

handle_default_option(处理每一行参数)

getopt_compare_strings(查找匹配项,设置特定参数的值)

insert_dynamic(将变量插入链表)

bitsCN.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So aktivieren oder deaktivieren Sie eSIM unter Windows 11 So aktivieren oder deaktivieren Sie eSIM unter Windows 11 Sep 20, 2023 pm 05:17 PM

Wenn Sie Ihren Laptop bei einem Mobilfunkanbieter gekauft haben, hatten Sie höchstwahrscheinlich die Möglichkeit, eine eSIM zu aktivieren und Ihr Mobilfunknetz zu nutzen, um Ihren Computer mit dem Internet zu verbinden. Mit eSIM müssen Sie keine weitere physische SIM-Karte in Ihren Laptop einlegen, da diese bereits integriert ist. Dies ist sehr nützlich, wenn Ihr Gerät keine Verbindung zum Netzwerk herstellen kann. Wie überprüfe ich, ob mein Windows 11-Gerät eSIM-kompatibel ist? Klicken Sie auf die Schaltfläche „Start“ und gehen Sie zu „Netzwerk & Internet“ > „Mobilfunk“ > „Einstellungen“. Wenn die Option „Mobilfunk“ nicht angezeigt wird, verfügt Ihr Gerät nicht über eSIM-Funktionen und Sie sollten eine andere Option aktivieren, z. B. die Verwendung Ihres Mobilgeräts zum Verbinden Ihres Laptops mit einem Hotspot. Um zu aktivieren und

Super komplett! Gängige Methoden zum Schreiben von Konfigurationsdateien in Python Super komplett! Gängige Methoden zum Schreiben von Konfigurationsdateien in Python Apr 11, 2023 pm 10:22 PM

Warum sollten wir die feste Datei der Konfigurationsdatei schreiben? Wir können sie direkt als .py-Datei schreiben, z. B. „settings.py“ oder „config.py“. dasselbe Projekt; aber wenn wir es in anderen verwenden müssen Wenn Sie Konfigurationsdateien auf Nicht-Python-Plattformen teilen, ist das Schreiben einer einzelnen .py keine gute Wahl. Zu diesem Zeitpunkt sollten wir einen gemeinsamen Konfigurationsdateityp zum Speichern dieser festen Teile wählen. Derzeit umfassen die am häufigsten verwendeten und beliebten Formattypen für Konfigurationsdateien hauptsächlich INI, JSON, TOML, YaML, XML usw. Wir können über Standardbibliotheken oder Bibliotheken von Drittanbietern auf diese Arten von Konfigurationsdateien zugreifen.

So ändern Sie den Netzwerktyp in Windows 11 in „Privat' oder „Öffentlich'. So ändern Sie den Netzwerktyp in Windows 11 in „Privat' oder „Öffentlich'. Aug 24, 2023 pm 12:37 PM

Das Einrichten eines drahtlosen Netzwerks ist üblich, aber die Auswahl oder Änderung des Netzwerktyps kann verwirrend sein, insbesondere wenn Sie die Konsequenzen nicht kennen. Wenn Sie Ratschläge dazu suchen, wie Sie den Netzwerktyp in Windows 11 von öffentlich auf privat oder umgekehrt ändern können, lesen Sie weiter, um einige nützliche Informationen zu erhalten. Was sind die verschiedenen Netzwerkprofile in Windows 11? Windows 11 verfügt über eine Reihe von Netzwerkprofilen, bei denen es sich im Wesentlichen um Einstellungssätze handelt, mit denen verschiedene Netzwerkverbindungen konfiguriert werden können. Dies ist nützlich, wenn Sie zu Hause oder im Büro über mehrere Verbindungen verfügen, sodass Sie nicht jedes Mal alles neu einrichten müssen, wenn Sie eine Verbindung zu einem neuen Netzwerk herstellen. Private und öffentliche Netzwerkprofile sind zwei gängige Typen in Windows 11, aber im Allgemeinen

Wo ist das Win10-Benutzerprofil? Wie richtet man das Benutzerprofil in Win10 ein? Wo ist das Win10-Benutzerprofil? Wie richtet man das Benutzerprofil in Win10 ein? Jun 25, 2024 pm 05:55 PM

In letzter Zeit möchten viele Benutzer des Win10-Systems das Benutzerprofil ändern, wissen aber nicht, wie das geht. In diesem Artikel erfahren Sie, wie Sie das Benutzerprofil im Win10-System festlegen. So richten Sie ein Benutzerprofil in Win10 ein 1. Drücken Sie zunächst die Tasten „Win+I“, um die Einstellungsoberfläche zu öffnen, und klicken Sie, um die „System“-Einstellungen einzugeben. 2. Klicken Sie dann in der geöffneten Benutzeroberfläche links auf „Info“, suchen Sie dann nach „Erweiterte Systemeinstellungen“ und klicken Sie darauf. 3. Wechseln Sie dann im Popup-Fenster zur Optionsleiste „“ und klicken Sie unten auf „Benutzerkonfiguration“.

Installieren Sie Helm unter Ubuntu Installieren Sie Helm unter Ubuntu Mar 20, 2024 pm 06:41 PM

Helm ist eine wichtige Komponente von Kubernetes, die die Bereitstellung von Kubernetes-Anwendungen vereinfacht, indem Konfigurationsdateien in einem Paket namens HelmChart gebündelt werden. Dieser Ansatz macht das Aktualisieren einer einzelnen Konfigurationsdatei bequemer als das Ändern mehrerer Dateien. Mit Helm können Benutzer Kubernetes-Anwendungen einfach bereitstellen, wodurch der gesamte Bereitstellungsprozess vereinfacht und die Effizienz verbessert wird. In diesem Handbuch beschreibe ich verschiedene Möglichkeiten zur Implementierung von Helm unter Ubuntu. Bitte beachten Sie: Die Befehle in der folgenden Anleitung gelten für Ubuntu 22.04 sowie alle Ubuntu-Versionen und Debian-basierten Distributionen. Diese Befehle wurden getestet und sollten auf Ihrem System ordnungsgemäß funktionieren. in U

Super komplett! Gängige Methoden zum Schreiben von Konfigurationsdateien in Python Super komplett! Gängige Methoden zum Schreiben von Konfigurationsdateien in Python Apr 13, 2023 am 08:31 AM

Warum Konfigurationsdateien schreiben? Während des Entwicklungsprozesses verwenden wir häufig einige feste Parameter oder Konstanten. Diese festeren und häufiger verwendeten Teile werden oft in eine feste Datei geschrieben, um Wiederholungen in verschiedenen Modulcodes zu vermeiden und den Kerncode sauber zu halten. Wir können diese feste Datei direkt in eine .py-Datei schreiben, z. B. „settings.py“ oder „config.py“. Der Vorteil besteht darin, dass wir Teile davon direkt durch Import in dasselbe Projekt importieren können Auf anderen Nicht-Python-Plattformen ist das Schreiben einer einzelnen .py-Datei beim Konfigurieren der Dateifreigabe keine gute Wahl. Zu diesem Zeitpunkt sollten wir einen allgemeinen Konfigurationsdateityp auswählen

Effektive Methode zur Lösung des Problems verstümmelter Zeichen im Eclipse-Editor Effektive Methode zur Lösung des Problems verstümmelter Zeichen im Eclipse-Editor Jan 04, 2024 pm 06:56 PM

Eine effektive Methode zur Lösung des verstümmelten Problems von Eclipse erfordert spezifische Codebeispiele. In den letzten Jahren hat Eclipse als eine der beliebtesten integrierten Entwicklungsumgebungen vielen Entwicklern Komfort und Effizienz geboten. Bei der Verwendung von Eclipse können jedoch Probleme mit verstümmeltem Code auftreten, was zu Problemen bei der Projektentwicklung und beim Lesen des Codes führt. In diesem Artikel werden einige effektive Methoden zur Lösung des Problems verstümmelter Zeichen in Eclipse vorgestellt und spezifische Codebeispiele bereitgestellt. Ändern Sie die Codierungseinstellungen für die Eclipse-Datei: in Eclipse

elementary OS 7, die neueste Version auf Basis von Ubuntu, ist jetzt mit einem offiziellen Download-Link verfügbar elementary OS 7, die neueste Version auf Basis von Ubuntu, ist jetzt mit einem offiziellen Download-Link verfügbar Jan 16, 2024 pm 10:12 PM

Die auf Ubuntu basierende Linux-Distribution elementaryOS hat jetzt die neueste v7-Version (Ubuntu22.04LTS) veröffentlicht, die jetzt auf der offiziellen Website zum Download bereitsteht. Erwähnenswert ist, dass ein Upgrade von elementaryOS 6.1 auf 7 derzeit nicht möglich ist. Nutzer früherer Versionen können die offiziellen Upgrade-Empfehlungen lesen. elementaryOS7 bietet ein zuverlässiges und intelligentes Installations- und Einrichtungserlebnis. Zumindest die erste Anmeldung ist sehr benutzerfreundlich und außerdem sehr einfach, reibungslos und intelligent. Im Vergleich zur Vorgängerversion hat elementaryOS7 einige seiner Nutzungslogiken angepasst. Beispielsweise wurde die Einstellung zum Öffnen eines Ordners durch Klicken bereits kritisiert, sodass Entwickler in der neuen Version Ihren Computer nach Ihren Wünschen bedienen können.

See all articles