Heim  >  Artikel  >  Datenbank  >  MySQL-Kompilierung, Installation und kurze Einführung

MySQL-Kompilierung, Installation und kurze Einführung

黄舟
黄舟Original
2017-09-30 10:56:211408Durchsuche

==========MYSQL-Arbeitsprinzipdiagramm:

1> Datenbankeinführung: Einfach ausgedrückt ist eine Datenbank ein Ort, an dem Daten gespeichert werden. Das Warehouse, das Daten nach bestimmten Regeln auf der Festplatte speichert, kann die in der Datenbank gespeicherten Daten effektiv über das Datenbankverwaltungssystem verwalten.
SQL-Sprache: DBMS verwendet die SQL-Sprache für die Datenbankverwaltung. Die SQL-Sprache ist eine Abfrage- und Entwurfssprache, die hauptsächlich zum Speichern von Daten, zum Abfragen von Daten sowie zum Aktualisieren und Verwalten relationaler Datenbanken verwendet wird.
Die SQL-Sprache ist in drei Teile unterteilt.

DDL-Anweisungen (Data Definition Language) werden verwendet um Datenbanktabellen zu definieren, Indizes und Trigger anzuzeigen usw.
         Kommentar
Die DML-Anweisung (Data Manipulation Language) wird zum Einfügen von Daten, zum Abfragen von Daten, zum Aktualisieren von Daten und zum Löschen von Daten verwendet.
                                                      int   Grant
widerrufen

Was sind die gängigen Datenbanksysteme:
1. Oracle
2. IBMs DB2
3. Sybase
4. Microsoft Access und SQL Server
5. Open Source PostgreSQL
6. Open-Source-MySQL

MySQL-Funktionen:

1. Plattformübergreifend, unterstützt mehrere Betriebssysteme, AIX FreeBSD HP-UX Linux MacOS NovellNetware OpenBSD Solaris Windows usw.

2. Unterstützt Multithreading und kann die Hardware-Ressourcen (CPU-Ressourcen) voll ausnutzen
3. Unterstützt große Datenbanken und kann große Datenbanken mit mehreren zehn Millionen Einträgen verarbeiten.
4. Unterstützt mehrere Plug-in-Speicher-Engines

mysql-server-5.6

1) InnoDB kann jetzt das Problem übermäßiger Speichernutzung begrenzen, wenn eine große Anzahl von Tabellen geöffnet wird ( wie hier erwähnt (Angekommen) (Dritter hat gepatcht)

2) InnoDB-Leistungsverbesserung. Zum Beispiel die Aufteilung des Kernel-Mutex; die Trennung des Flush-Vorgangs vom Hauptthread; die Optimierung mehrerer Perge-Threads usw.

 3) InnoDB-Deadlock-Informationen können zur einfachen Analyse im Fehlerprotokoll aufgezeichnet werden
 4) MySQL5 .6 unterstützt die Verzögerungsreplikation und ermöglicht es Slave und Master, ein Zeitintervall zu steuern, um die Datenwiederherstellung unter besonderen Umständen zu erleichtern.
 5) Verbesserte Tabellenpartitionsfunktion
 6) Verbesserte MySQL-Replikationsfunktion auf Zeilenebene, die den Festplatten-, Speicher-, Netzwerk- und anderen Ressourcenaufwand reduzieren kann (nur Datensatzfelder, die Zeilendatensätze bestimmen können)
 7) Binlog Implementierung absturzsicher

 8) Replikationsereignisse verwenden crc32-Überprüfung, um die Konsistenz der Master/Slave-Replikationsdaten zu verbessern

 9) log_bin_basename hinzugefügt (zuvor gab es in den Variablen keine Informationen zum Binlog-Standort, was für die Datenbanküberwachung sehr unpraktisch war)

2》Kompilieren und installieren Sie MYSQL:
  1>Installieren Sie Abhängigkeitspakete:
   


  2>Benutzer erstellen: 🎜>
   3>Installieren sql:
  Analyse:

 #cmake Kompilierungsbefehl



-DCMAKE_INSTALL_PREFIX=/usr/local/mysql MySQL-Installationsverzeichnis festlegen

yum install gcc gcc-c++ ncurses-devel perl cmake bison

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock legt den Listening-Socket-Pfad fest, der ein absoluter Pfadname sein muss. Der Standardwert ist /tmp/mysql.sock
   -DSYSCONFDIR=/etc Die Konfigurationsdatei wird unter /etc/ abgelegt
   -DDEFAULT_CHARSET=gbk Legen Sie den Zeichensatz des Servers fest.
                                                                                                                                                                                Von DefALTUNE, MYSQL TO STOCK TO BE LATIN1 (CP1252 WESTERN EUROPEAN) CHARAKTERSATZ. Die Datei cmake/character_sets.cmake enthält eine Liste der zulässigen Zeichensatznamen.
-DDEFAULT_COLLATION=gbk_chinese_ci Legen Sie die Sortierregeln des Servers fest.
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
Speicher-Engine-Optionen:
MyISAM, MERGE, MEMORY und C Die SV-Engine wird standardmäßig in den Server kompiliert und ist nicht erforderlich.
Um eine Speicher-Engine statisch auf dem Server zu kompilieren, verwenden Sie -DWITH_engine_STORAGE_ENGINE= 1
Verfügbare Speicher-Engine-Werte sind: ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (Partitionierungsunterstützung) und PERFSCHEM )                                   Schema)

-DMYSQL_DATADIR=/data/mysqldb Legt das MySQL-Datenbankdateiverzeichnis fest 🎜>

  -DMYSQL_TCP_PORT=3306 Legen Sie den MySQL-Server-Überwachungsport fest, der Standardwert ist 3306 Ob optionale Dateien heruntergeladen werden sollen. Wenn diese Option beispielsweise aktiviert ist (auf 1 gesetzt), lädt cmake die von Google zum Ausführen von Unit-Tests verwendete Testsuite herunter

4> && make isntall 5>Initialisierung: Autorisieren Sie das MySQL-Installationsverzeichnis # chown mysql:mysql /usr/local/mysql -R Autorisieren Sie das MySQL-Datenspeicherverzeichnis
      # chown mysql: mysql /data/mysqldb -R
Autorisieren Sie das MySQL-Protokollverzeichnis
#chown mysql:mysql /data/mysqldb/binlog/
#chown mysql:mysql /data/mysqldb/log/
Starten Sie die Initialisierung :
    /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysqldb

   Kopieren Sie das Mysql-Dienst-Startskript
     Mysql-Dienststartskript ändern (erforderlich für mehrere Instanzen) 6> ;Konfigurationsdatei
Es wird in Zukunft keine vorgefertigte my.cnf im Unternehmen geben, wenn my.cnf nach der Kompilierung nicht in /etc/ gefunden wird Gehen Sie zur Installation in das ursprüngliche Kompilierungsverzeichnis, in dem sich das entpackte Paket befindet, und suchen Sie das Verzeichnis „support-files“. Kopieren Sie my-default.cnf nach /etc/my.cnf

========== Details zur Konfigurationsdatei:
# vim /etc/my.cnf
[client]
port = 3306 //Die Portnummer, an der sich der Client befindet connected
socket = /tmp/mysql.sock //Der Speicherort der vom Client verbundenen Sock-Datei

[mysqld]
#base
port = 3306 //Der Standardport Anzahl der MySQL kann geändert werden
Benutzer = MySQL //MySQL-Benutzer angegeben
Socket = /tmp/mysql.sock //Portnummer, die für die Verbindung verwendet wird
pid-file = /tmp/mysql.pid // Haupt-PID des laufenden Prozesses Datei
basedir = /usr/local/mysql //Mysql-Installationsverzeichnis
datadir = /data/mysqldb //Mysql-Datenverzeichnis
tmpdir = /opt/mysqltmp //Mysql temporäre Tabelle Verzeichnis
open_files_limit = 10240 //Anzahl der geöffneten Dateihandles
explicit_defaults_for_timestamp
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
federated //Unterstützt SQL-Syntax und Datenüberprüfung usw. sql_mode drei Modi
ANSI-Modus, Entspannter Modus zum Einfügen von Daten zur Überprüfung. Passen Sie den Datentyp an oder kürzen und speichern Sie ihn und geben Sie beim Einfügen eine „Warnung“ aus.

TRADITIONELLER Modus, strenger Modus Daten in MySQL-Daten importieren. Durch strenge Überprüfung wird sichergestellt, dass Daten nicht eingefügt werden können und ein Fehler gemeldet wird. Bei Verwendung für Transaktionen werden Transaktionen im Modus „STRICT_TRANS_TABLES“ zurückgesetzt. Im strengen Modus können keine falschen Daten eingefügt werden und es wird ein Fehler gemeldet:

server_id = 706 //Die eindeutige Dienstidentifikationsnummer der Master-Slave-Replikation, der Wert liegt zwischen 1 und
#replicate-do -db = posp //Definieren Sie die einzige replizierte Bibliothek
#replicate-ignore-db = mysql //Definieren Sie die einzige replizierte Bibliothek
#log-slave-updates = 1 //Diese Option ist Wird für die Master-Slave-Replikation verwendet. Öffnen Sie die Replikationsmasterinformationen vom Server
event_scheduler=1 //Öffnen Sie den Zeitplaner

max_connections = 2000 //#Maximale Anzahl gleichzeitiger Verbindungen erfordert eine entsprechende Erhöhung der Anzahl der Dateien Anzahl der Deskriptoren, die geöffnet werden dürfen.
max_connect_errors = 10000 //Wenn der von einem Benutzer initiierte Verbindungsfehler diesen Wert überschreitet, wird die nächste Verbindung des Benutzers blockiert.
interactive_timeout = 600 //Die Anzahl der Sekunden, die der Server wartet für Aktivität vor dem Schließen der interaktiven Verbindung
wait_timeout = 600 //Die Anzahl der Sekunden, die der Server auf Aktivität wartet, bevor er eine nicht interaktive Verbindung schließt
skip-name-resolve //#garnt, IP muss verwendet werden, Hostname kann nicht verwendet werden, DNS-Auflösung ist deaktiviert
sync_binlog= 0 //Die Sicherheit der Transaktion kann gewährleistet werden. Der Standardwert ist 0
log_bin_trust_function_creators = 1 //Anpassbare MySQL-Funktion öffnen

character-set-server = utf8 //Zeichensatz festlegen
default_storage_engine = InnoDB //Standard-Engine definieren

#log
log-bin = /data/mysqldb/binlog/mysql-bin //Geben Sie den Dateinamen des Binlog-Binärprotokolls an
binlog_cache_size = 32m //Die Cache-Größe des Binlog
max_binlog_cache_size = 10g //Legen Sie den maximalen Binlog-Cache fest
binlog_stmt_cache_size = 32m //Legen Sie den minimalen Binlo-Cache fest
table_open_cache = 2048 //Tabellendeskriptor-Cache-Größe, die die Anzahl der Dateiöffnungen/-schließungen reduzieren kann
max_binlog_size = 1024m //Setzen Sie die maximale Binlog-Protokolldatei auf 1G
binlog_format = gemischt //Binlog-Protokollformat.
log_output = FILE //Ausgabe in die Protokolldatei bestätigen
log-error = /data/mysqldb/log /mysql-error .log //Ausgabe des MySQL-Systemfehlerprotokolls
slow_query_log = 1 //Langsame Protokollierung aktivieren
slow_query_log_file = /data/mysqldb/log/mysql-slow_query.log //Pfad für langsames Protokoll definieren Ausgabe
general_log = 0 //Allgemeines Protokoll definieren
general_log_file = /data/mysqldb/log/mysql-general-query.log //Den Pfad für die allgemeine Protokollausgabe definieren
expire-logs-days = 30 //Die Zeit für die Protokollaufbewahrung für 30 Tage
relay-log = /data/mysqldb/binlog/relay-bin //Definieren Sie die Adresse für die reloa_log-Replikation
relay-log-index= /data/mysqldb/binlog /relay-bin.index // Reloa_log-Index definieren

#buffer
sort_buffer_size = 2m //#Der Puffer, der für die Neuordnung erforderlich ist, wenn sich die MyISAM-Tabelle ändert. Im Allgemeinen reichen 64 MB aus
read_buffer_size = 2m //Die Puffergröße, die für den vollständigen Tabellenscan der MyISAM-Tabelle verwendet wird.
read_rnd_buffer_size = 2m //#Nach dem Sortieren werden beim Lesen von Zeilen aus einer bereits sortierten Sequenz Zeilendaten gelesen aus diesem Puffer, um die Suche nach Festplatten zu verhindern
join_buffer_size = 2m //# InnoDB wird zum Zwischenspeichern von Daten verwendet und

net_buffer_length = 16k //Bei der Ausführung von mysqldump beträgt die maximale Nettopufferlänge Die Obergrenze beträgt 16 MB Der Standardwert ist 1 MB
max_allowed_packet = 512m //Unabhängige Größe für jede Verbindung. Größe erhöht sich dynamisch
bulk_insert_buffer_size = 32m //# Dieser Puffer wird zugewiesen, wenn eine Burst-Einfügung erkannt wird. myisam
max_heap_table_size = 512m// #Die Größe der Speichertabelle
tmp_table_size = 512m//#Die maximale Größe der internen (im Speicher befindlichen) temporären Tabelle
thread_cache_size = 100 //#Zwischenspeichern Sie die Anzahl der wiederverwendbaren Threads, Sie können sie entsprechend anpassen
query_cache_size = 256m //#Geben Sie die Größe des MySQL-Abfrageergebnispuffers an. Die Optimierung kann entsprechend angepasst werden
query_cache_limit = 10m //#Die Obergrenze des Ergebnissatzes zum Zwischenspeichern einer einzelnen SQL-Anweisung. Der Standardwert ist 4 KB. Die Optimierung kann entsprechend angepasst werden
query_cache_min_res_unit = 4k
key_buffer_size = 16m //#Die Größe des Schlüsselwortpuffers, der im Allgemeinen zum Puffern des Indexblocks der MyISAM-Tabelle verwendet wird
myisam_sort_buffer_size = 64m //# Dies wird in jedem Thread zugewiesen. Sie müssen also vorsichtig sein, wenn Sie große Werte festlegen.
myisam_max_sort_file_size = 10g //Die maximal zulässige temporäre Dateigröße, wenn MySQL den Index neu erstellt größer als dieser Wert Groß, der Index wird durch Schlüsselwertpufferung erstellt (langsamer)
myisam_repair_threads = 1 //#Wenn eine Tabelle mehr als einen Index hat, MyISAM

#innodb
innodb_file_per_table = 1 #//#Ja Ändern Sie InnoDB in den unabhängigen Tabellenbereichsmodus. Jede Tabelle in jeder Datenbank generiert einen Datenbereich
innodb_data_file_path = ibdata1:2048M:autoextend //#Wenn Sie nur ein einziges logisches Laufwerk zum Speichern Ihrer Daten haben , eine einzelne Auto-Inkrementierungsdatei Es ist gut genug
innodb_log_file_size = 128m //#Die Größe jeder Protokolldatei in der Protokollgruppe,
innodb_log_files_in_group = 3 //#Die Gesamtzahl der Dateien in der Protokollgruppe Sprich 2~3 ist besser
innodb_buffer_pool_size = 1g //innodb buffer pool size
innodb_buffer_pool_instances = -1
innodb_max_dirty_pages_pct = 70 //#Das maximal zulässige Dirty-Page-Verhältnis im InnoDB-Pufferpool beträgt 60-90 OK
#innodb_thread_concurrency = 8
innodb_flush_method = O_DIRECT
innodb_log_buffer_size = 16m # Die Größe des Puffers, der zum Puffern von Protokolldaten verwendet wird. Wenn dieser Wert fast voll ist, muss InnoDB die Daten auf die Festplatte leeren
innodb_flush_log_at_trx_commit = 2
0 bedeutet, dass das Protokoll nur ungefähr jede Sekunde in die Protokolldatei geschrieben wird und die Protokolldatei auf Datenträger Nr. 2 geleert wird, bedeutet, dass das Protokoll nach jedem Commit in die Protokolldatei geschrieben wird, die Protokolldatei jedoch nur wird ungefähr jede Sekunde auf die Festplatte geleert

[mysql]
no-auto-rehash #Sie können die Tabulatortaste verwenden, um den Befehl abzuschließen
prompt = (u@h) [d]_ #Anzeige der Hostname im MySQL-Befehl
default-character -set = utf8 //Zeichensatz festlegen

7>Dienst starten und Umgebungsvariablen festlegen:
    #:vim /etc/profile Das letzte Teil der Datei.
MySQL =/USR/LOCAL/MySQL/BIN
Pfad = $ PATH: $ MySQL
Exportpfad
#: Quelle/ETC/Profil // Gültig

Dienst wird gestartet 🎜 >      #/etc/init.d/mysqld start

  Hinweis:
    log_slave_updates     Während der Master-Slave-Replikation. Schalten Sie diese Option auf dem Master-Server aus und aktivieren Sie diese Option auf dem Slave

===================== Analyse häufiger Probleme:
Fehler nach dem Starten der Datenbank aufgetreten:

Lösung:

1》Kommentieren Sie eine Zeile über innodb_data_file_path in der Konfigurationsdatei aus
2》 Löschen Sie ibdata1 ibprofile0 ibprofile1

Fehler zwei:
1》Es muss ein fehlender Ordner erstellt werden; 2》Berechtigungen für das vorherige Verzeichnis des zu erstellenden Ordners festlegen:
chown mysql:mysql /tmpopt/
3》Sie Möglicherweise müssen Sie auch einige Dateien löschen. Suchen Sie in Ihrem eigenen Verzeichnis nach den folgenden Dateien und löschen Sie sie:
ibdata1 ibprofile0 ibprofile1

Das obige ist der detaillierte Inhalt vonMySQL-Kompilierung, Installation und kurze Einführung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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