GDB-Debugging, MySQL-Kompilierung und Installation des tatsächlichen Kampfquellcodes

GDB-Debugging, MySQL-Kompilierung und Installation des tatsächlichen Kampfquellcodes

Quellcode herunterladen

Git-Klon https://github.com/mysql/mysql-server.git
cd MySQL-Server
git checkout 5.7

Kompilieren und installieren

Abhängigkeiten installieren

yum install -y cmake make gcc gcc-c++ ncurses-devel bison gdb

Beachten Sie, dass Sie den Boost-Pfad angeben müssen, der beim Ausführen von cmake automatisch heruntergeladen wird.

cd BUILD; 
cmake .. -DDOWNLOAD_BOOST=1 -DWITH_BOOST=<Verzeichnis> -DWITH_DEBUG=1 -DWITH_UNIT_TESTS=off
machen 
installieren

Abschließend wird das Programm im Verzeichnis /usr/local/mysql installiert

Erstellen Sie einen dedizierten Benutzer

MySQL-Gruppenadd
useradd -s /sbin/nologin -M -g mysql mysql

Initialisieren der Datenbank

cd /usr/local/mysql/
bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql
2019-02-01T07:45:58.147032Z 1 [Hinweis] Ein temporäres Passwort wird für root@localhost generiert: jss<swtX.8og

Herstellen einer Verbindung zu einer Datenbank

[root@bogon bin]# ./mysql -h localhost -uroot
FEHLER 2002 (HY000): Verbindung zum lokalen MySQL-Server über Socket '/tmp/mysql.sock' nicht möglich (2)

Es stellt sich heraus, dass die Client-Socket-Datei nicht in der Konfigurationsdatei fixiert ist.

Katze /etc/my.cnf
[mysqld]
Datenverzeichnis=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Das Deaktivieren symbolischer Links wird empfohlen, um verschiedene Sicherheitsrisiken zu vermeiden
symbolische Links = 0
# Benutzer- und Gruppeneinstellungen werden ignoriert, wenn systemd verwendet wird.
# Wenn Sie mysqld unter einem anderen Benutzer oder einer anderen Gruppe ausführen müssen,
# Passen Sie Ihre Systemd-Unit-Datei für MariaDB entsprechend der
# Anweisungen unter http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-Datei=/var/run/mariadb/mariadb.pid
#
# alle Dateien aus dem Konfigurationsverzeichnis einbinden
#
!includedir /etc/my.cnf.d

Zunahme

[Kunde]
Standardzeichensatz = utf8
socket=/var/lib/mysql/mysql.sock
[mysql]
Standardzeichensatz = utf8
socket=/var/lib/mysql/mysql.sock

Stellen Sie die Verbindung erneut her, dann ist alles ok.

Ändern des Standardkennworts

PASSWORT FESTLEGEN = PASSWORT('123456');
ALTER USER 'root'@'localhost' PASSWORT LÄUFT NIE AB;
Berechtigungen leeren;

Testdaten importieren

/usr/local/mysql/bin/mysql -uroot -p123456 test < artikel_rank.sql

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an

Das könnte Sie auch interessieren:
  • Der Mysql LONGBLOB-Typ speichert Binärdaten (Änderung + Debuggen + Sortieren)
  • Der Mysql LONGTEXT-Typ speichert große Dateien (binär ist auch möglich) (Änderung + Debuggen + Sortieren)
  • Mysql-Einfügen von Chinesisch und chinesische Abfrage (Änderung + Debuggen)
  • Konfiguration einer PHP-Debugging-Umgebung für Anfänger (IIS+PHP+MYSQL)
  • Verwandte Methoden des MySQL UDF-Debugmodus debugview
  • Teilen Sie 101 MySQL-Debugging- und Optimierungstipps
  • Wie MLSQL Stack das Stream-Debugging vereinfacht

<<:  Installieren Sie Docker für Windows unter Windows 10 Home Edition

>>:  JavaScript-Canvas zum Erzielen eines Code-Rain-Effekts

Artikel empfehlen

Detailliertes Tutorial zur Überwachung von Nginx/Tomcat/MySQL mit Zabbix

Inhaltsverzeichnis Zabbix überwacht Nginx Zabbix ...

Vollständige Analyse des Vue-Diff-Algorithmus

Inhaltsverzeichnis Vorwort Vue-Aktualisierungsans...

Erstellen Sie mit Node.JS ein Echtzeit-Warnsystem für Unwetter

Inhaltsverzeichnis Vorwort: Schritt 1: Finden Sie...

Lösung für das Problem, dass HTML2-Canvas-SVG nicht erkannt wird

Es gibt eine neue Funktion, die das Erfassen eine...

Detaillierte Schritte zur Installation von Anaconda unter Linux (Ubuntu 18.04)

Anaconda ist die beliebteste Python-Plattform für...

MySQL-Beispiel zum Abrufen des heutigen und gestrigen Zeitstempels 0:00

Wie unten dargestellt: Gestern: UNIX_TIMESTAMP(CA...

Schritte zum Ändern des MySQL-Datenbankdatendateipfads unter Linux

Nach der Installation der MySQL-Datenbank mit der...

Detaillierte Erklärung von Softlinks und Hardlinks in Linux

Inhaltsverzeichnis 1. Grundlegende Speicherung vo...

So erklären Sie TypeScript-Generika auf einfache Weise

Inhaltsverzeichnis Überblick Was sind Generika Sy...

Vue implementiert die Anmeldung mit grafischem Bestätigungscode

In diesem Artikelbeispiel wird der spezifische Co...

Detailliertes Installationstutorial für MySQL 5.7.11 unter Win7

Betriebssystem: Win7 64-Bit Ultimate Edition Komp...