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

So konfigurieren Sie Benutzerrollenberechtigungen in Jenkins

Die Jenkins-Konfiguration von Benutzerrollenberec...

Eine einfache Erklärung der parallelen MySQL-Replikation

1. Hintergrund der parallelen Replikation Zunächs...

Mehrere Techniken zum Abspielen von Sounds mit CSS

CSS ist der Bereich von Stil, Layout und Präsenta...

MySQL-Anweisungsanordnung und zusammenfassende Einführung

SQL-Anweisungen (Structured Query Language), also...

Beispielcode zum Erstellen von Desktop-Anwendungen mit Vue + Electron

1.vue-Verpackung Hier verwenden wir den Befehl „v...

Eine kurze Erläuterung der Situationen in MySQL, die zu Indexfehlern führen

Hier einige Tipps von Ausbildungsstätten und mein...

Detaillierte Erläuterung der MySQL-Multitabellen-Joinabfrage

Inhaltsverzeichnis Abfrage zum Verbinden mehrerer...

React + Threejs + Swiper vollständiger Code zum Erzielen eines Panoramaeffekts

Schauen wir uns den Panorama-Effekt an: Adresse a...

Zusammenfassung der praktischen Erfahrungen zu HTML-Wissenspunkten

1. Das Tabellen-Tag ist Tabelle, tr ist Zeile, td ...

So löschen Sie den gesamten Inhalt eines Verzeichnisses mit Ansible

Studierende, die Ansible verwenden, wissen, dass ...

MySQL-Sequenz AUTO_INCREMENT ausführliche Erklärung und Beispielcode

MySQL-Sequenz AUTO_INCREMENT ausführliche Erkläru...