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

Beispiel einer DOM-Operationstabelle (DOM erstellt Tabelle)

1. Erstellen Sie eine Tabelle mit HTML-Tags: Code...

Lösungen zur Verarbeitung und Reparatur historischer Linux-Images

Der ECS-Cloud-Server, der mit dem historischen Li...

Anwendung von Hadoop-Zählern und Datenbereinigung

Datenbereinigung (ETL) Vor dem Ausführen des MapR...

CSS horizontale Zentrierung und Begrenzung der maximalen Breite

Eine CSS-Layout- und Stilfrage: Wie kann man die ...

CSS3-Übergang zur Implementierung eines Benachrichtigungsnachrichtenkarussells

Vue-Version, kopiere sie in die Datei und verwend...

Wie besteht man die W3C-Validierung?

Neben der Festlegung von Vorschriften für verschi...

Leitfaden zum Schreiben von HTML-Code

Gängige Konventions-Tags Selbstschließende Tags, ...

Warum MySQL-Datenbanken NULL so weit wie möglich vermeiden

Viele Tabellen in MySQL enthalten Spalten, die NU...

Analysieren von AB-Leistungstestergebnissen unter Apache

Ich habe immer Loadrunner für Leistungstests verw...