==========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:
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)
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
2》Kompilieren und installieren Sie MYSQL:
1>Installieren Sie Abhängigkeitspakete:
2>Benutzer erstellen: 🎜>
3>Installieren sql:
Analyse:
-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:
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!