1. Systeminstallationspaket yum -y install make gcc-c++ cmake bison-devel ncurses-devel readline-devel libaio-devel perl libaio wget lrzsz vim libnuma* bzip2 xz 2. Firewall und Selinux ausschalten sed -i ‚s/SELINUX=enforcing/SELINUX=disabled/‘ /etc/selinux/config 0 /etc/init.d/iptables stoppen echo "/etc/init.d/iptables stop">>/etc/rc.local 3. Ändern Sie die Systemeinschränkungsparameter Katze >> /etc/security/limits.conf << EOF # ###Brauch # * Soft-Nofile 20480 * hartes Nofile 65535 * weicher nproc 20480 * harter nproc 65535 Ende der Laufzeit 4. Konfigurieren Sie die Hostauflösung jedes Hosts Katze >> /etc/hosts <<"EOF" 10.10.146.28 bj-db-m1 10.10.1.139 bj-db-m2 10.10.173.84 bj-db-m3 Ende der Laufzeit 5. Ändern Sie die Kernelparameter Katze >>/etc/sysctl.conf <<"EOF" vm.swappiness=0 #Erhöhen Sie die Anzahl der von TCP unterstützten Warteschlangen net.ipv4.tcp_max_syn_backlog = 65535 #Reduzieren Sie die Ressourcenwiederverwendung beim Trennen von net.ipv4.tcp_max_tw_buckets = 8000 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_fin_timeout = 10 #Ändern Sie den lokalen Portbereich net.ipv4.ip_local_port_range = 1024 65535 #Erlauben Sie, dass mehr Verbindungen in die Warteschlange aufgenommen werden net.ipv4.tcp_max_syn_backlog = 4096 #Für einen Datenbankserver, der nur lokal verwendet wird net.ipv4.tcp_fin_timeout = 30 #Portüberwachungswarteschlange net.core.somaxconn=65535 #Datenempfangsrate net.core.netdev_max_backlog=65535 net.core.wmem_default=87380 net.core.wmem_max=16777216 net.core.rmem_default=87380 net.core.rmem_max=16777216 Ende der Laufzeit sysctl -p 6. Laden Sie das Installationspaket herunter wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz # Entpacken Sie das Installationspaket tar -xJf mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz # Rufen Sie das Verzeichnis auf und erstellen Sie einen Softlink, um zukünftige Upgrades zu erleichtern. cd /usr/local/ ln -s /opt/mysql-8.0.18-linux-glibc2.12-x86_64 mysql # Benutzergruppe erstellenmysql hinzufügen useradd -g mysql mysql -d /home/mysql -s /sbin/nologin # Erstellen Sie das entsprechende Verzeichnis mkdir -p /data/mysql/mysql_3306/{logs,tmp,undolog} 7. Erstellen Sie die Konfigurationsdatei my.cnf 7-1. Erste Maschinenkonfiguration # Zuerst if [ -f /etc/my.cnf ]; dann mv /etc/meine.cnf /etc/meine.cnf.`date +%Y%m%d%H%m`.bak fi # Knoten1 Katze >/data/mysql/mysql_3306/my_3306.cnf <<"EOF" [Kunde] Port = 3306 Socket = /data/mysql/mysql_3306/tmp/mysql_3306.sock [mysql] prompt="\u@\h \R:\m:\s [\d]> " kein automatisches Wiederaufwärmen [mysqld] Benutzer = MySQL Port = 3306 Administratoradresse = 127.0.0.1 basedir = /usr/local/mysql Datenverzeichnis = /data/mysql/mysql_3306/data Socket = /data/mysql/mysql_3306/tmp/mysql_3306.sock pid-Datei = mysql_3306.pid Zeichensatzserver = utf8mb4 skip_name_resolve = 1 #replicate-wild-ignore-table=mysql.% #replicate-wild-ignore-table=test.% #replicate-wild-ignore-table=information_schema.% # Zwei-Master konfigurieren #server-1 #auto-increment-offset = 1 #auto-increment-increment = 2 #server-2 #auto-increment-offset = 2 #auto-increment-increment = 2 # halbsynchrone Replikationseinstellungen # #plugin_dir = /usr/local/mysql/lib/mysql/plugin #plugin_load = "validate_password.so;rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so" plugin_dir = /usr/local/mysql/lib/plugin #Offizieller Versionspfad plugin_load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so" #Offizieller Versionspfad slave_parallel_workers = 4 Slave_Parallel_Typ = LOGISCHE_UHR Slave_Preserve_Commit_Order = 1 Open_files_limit = 65535 back_log = 1024 max_Verbindungen = 1024 max_connect_errors = 1000000 table_open_cache = 1024 Tabellendefinitionscache = 1024 Tabelle_öffnen_Cache-Instanzen = 64 Thread-Stapel = 512 KB externe Sperre = FALSE max_allowed_packet = 32M Sortierpuffergröße = 4 M Join-Puffergröße = 4 M Thread-Cache-Größe = 1536 interaktives_Timeout = 600 Wartezeitüberschreitung = 600 temporäre Tabellengröße = 32 M maximale Heap-Tabellengröße = 32 M slow_query_log = 1 log_timestamps = SYSTEM slow_query_log_file = /data/mysql/mysql_3306/logs/slow.log log-error = /data/mysql/mysql_3306/logs/error.log lange_Abfragezeit = 0,1 log_queries_not_using_indexes = 1 log_throttle_queries_not_using_indexes = 60 Mindestanzahl untersuchter Zeilen = 100 log_slow_admin_statements = 1 log_slow_slave_statements = 1 Server-ID = 1423306 log-bin = /data/mysql/mysql_3306/logs/mysql-bin sync_binlog = 1 binlog_cache_size = 4M max_binlog_cache_size = 2G max_binlog_size = 1 G binlog_expire_logs_seconds=2592000 master_info_repository = TABELLE relay_log_info_repository = TABELLE gtid_mode = ein enforce_gtid_consistency = 1 binlog_checksum=KEINE log_slave_updates Slave-Zeilen-Suchalgorithmen = "INDEX_SCAN, HASH_SCAN" binlog_format = Zeile binlog_row_image=VOLL relay_log_recovery = 1 Relay-Log-Bereinigung = 1 Schlüsselpuffergröße = 32 M Lesepuffergröße = 8 M read_rnd_buffer_size = 4M bulk_insert_buffer_size = 64 MB myisam_sort_buffer_size = 128 M myisam_max_sort_file_size = 10 G myisam_repair_threads = 1 Sperrwartezeitüberschreitung = 3600 explizite_Vorgaben_für_Zeitstempel = 1 innodb_thread_concurrency = 0 innodb_sync_spin_loops = 100 innodb_spin_wait_delay = 30 #transaction_isolation = WIEDERHOLBARES LESEN transaction_isolation = LESEN-COMMITTED #innodb_additional_mem_pool_size = 16M innodb_buffer_pool_size = 2867 M innodb_buffer_pool_instances = 4 innodb_buffer_pool_load_at_startup = 1 innodb_buffer_pool_dump_at_shutdown = 1 innodb_data_file_path = ibdata1:1G:autoextend innodb_flush_log_at_trx_commit = 1 innodb_log_buffer_size = 32 M innodb_log_file_size = 2G innodb_log_files_in_group = 3 innodb_max_undo_log_size = 4G innodb_undo_directory = /data/mysql/mysql_3306/undolog # Passen Sie es entsprechend der IOPS-Fähigkeit Ihres Servers an. # Wenn Sie eine normale SSD verwenden, können Sie es auf 10.000 - 20.000 einstellen. # Wenn Sie eine High-End-PCIe-SSD-Karte konfigurieren, können Sie sie höher einstellen, z. B. 50000 - 80000 innodb_io_capacity = 4000 innodb_io_capacity_max = 8000 innodb_flush_sync = 0 innodb_flush_neighbors = 0 innodb_write_io_threads = 8 innodb_read_io_threads = 8 innodb_purge_threads = 4 innodb_page_cleaners = 4 innodb_open_files = 65535 innodb_max_dirty_pages_pct = 50 innodb_flush_method = O_DIRECT innodb_lru_scan_depth = 4000 innodb_checksum_algorithm = crc32 innodb_lock_wait_timeout = 10 innodb_rollback_on_timeout = 1 innodb_print_all_deadlocks = 1 innodb_file_per_table = 1 innodb_online_alter_log_max_size = 4G innodb_stats_on_metadata = 0 # einige Variablen für MySQL 8 log_error_verbosity = 3 innodb_print_ddl_logs = 1 binlog_expire_logs_seconds = 2592000 #innodb_dedicated_server = 0 innodb_status_file = 1 # Hinweis: Das Aktivieren von innodb_status_output & innodb_status_output_locks kann dazu führen, dass die Protokollfehlerdatei schneller wächst innodb_status_output = 0 innodb_status_output_locks = 0 #leistungsschema Leistungsschema = 1 performance_schema_instrument = "%memory%=ein" performance_schema_instrument = "%lock%=on" #innodb-Monitor innodb_monitor_enable="Modul_innodb" innodb_monitor_enable="Modulserver" innodb_monitor_enable="module_dml" innodb_monitor_enable="module_ddl" innodb_monitor_enable="Modul_trx" innodb_monitor_enable="module_os" innodb_monitor_enable="Modul_bereinigen" innodb_monitor_enable="Modulprotokoll" innodb_monitor_enable="Modulsperre" innodb_monitor_enable="Modulpuffer" innodb_monitor_enable="Modulindex" innodb_monitor_enable="module_ibuf_system" innodb_monitor_enable="Modulpufferseite" innodb_monitor_enable="module_adaptive_hash" #MGR :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::3s::::::333:33333333333333333333ag33333333333333333333333333333 es333333333333333333333333333333 es33 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann dann dann dann aber33333333333333333333 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 dann3 dann3 aber3 dann3 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann nichtie dasen aber aber abersossoss aberstens aberstensss aberten aber abers :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::3s::::::333:33333333333333333333ag33333333333333333333333333333 es333333333333333333333333333333 es33 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann dann dann dann aber33333333333333333333 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 nicht3 dann3 dann3 aber3 dann3 nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht nicht dann nichtie dasen aber aber abersossoss aberstens aberstensss aberten aber abers ::::::::::: schnell max_allowed_packet = 32M [mysqld_safe] #malloc-lib=/usr/local/mysql/lib/jmalloc.so nett=-19 Offene-Dateien-Limit=65535 Ende der Laufzeit 7-2. Zweite Maschinenkonfiguration # Zweite Maschinewenn [ -f /etc/my.cnf ]; dann mv /etc/meine.cnf /etc/meine.cnf.`date +%Y%m%d%H%m`.bak fi # Knoten1 Katze >/data/mysql/mysql_3306/my_3306.cnf <<"EOF" [Kunde] Port = 3306 Socket = /data/mysql/mysql_3306/tmp/mysql_3306.sock [mysql] prompt="\u@\h \R:\m:\s [\d]> " kein automatisches Wiederaufwärmen [mysqld] Benutzer = MySQL Port = 3306 Administratoradresse = 127.0.0.1 basedir = /usr/local/mysql Datenverzeichnis = /data/mysql/mysql_3306/data Socket = /data/mysql/mysql_3306/tmp/mysql_3306.sock pid-Datei = mysql_3306.pid Zeichensatzserver = utf8mb4 skip_name_resolve = 1 #replicate-wild-ignore-table=mysql.% #replicate-wild-ignore-table=test.% #replicate-wild-ignore-table=information_schema.% # Zwei-Master konfigurieren #server-1 #auto-increment-offset = 1 #auto-increment-increment = 2 #server-2 #auto-increment-offset = 2 #auto-increment-increment = 2 # halbsynchrone Replikationseinstellungen # #plugin_dir = /usr/local/mysql/lib/mysql/plugin #plugin_load = "validate_password.so;rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so" plugin_dir = /usr/local/mysql/lib/plugin #Offizieller Versionspfad plugin_load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so" #Offizieller Versionspfad slave_parallel_workers = 4 Slave_Parallel_Typ = LOGISCHE_UHR Slave_Preserve_Commit_Order = 1 Open_files_limit = 65535 back_log = 1024 max_Verbindungen = 1024 max_connect_errors = 1000000 table_open_cache = 1024 Tabellendefinitionscache = 1024 Tabelle_öffnen_Cache-Instanzen = 64 Thread-Stapel = 512 KB externe Sperre = FALSE max_allowed_packet = 32M Sortierpuffergröße = 4 M Join-Puffergröße = 4 M Thread-Cache-Größe = 1536 interaktives_Timeout = 600 Wartezeitüberschreitung = 600 temporäre Tabellengröße = 32 M maximale Heap-Tabellengröße = 32 M slow_query_log = 1 log_timestamps = SYSTEM slow_query_log_file = /data/mysql/mysql_3306/logs/slow.log log-error = /data/mysql/mysql_3306/logs/error.log lange_Abfragezeit = 0,1 log_queries_not_using_indexes = 1 log_throttle_queries_not_using_indexes = 60 Mindestanzahl untersuchter Zeilen = 100 log_slow_admin_statements = 1 log_slow_slave_statements = 1 Server-ID = 1433306 log-bin = /data/mysql/mysql_3306/logs/mysql-bin sync_binlog = 1 binlog_cache_size = 4M max_binlog_cache_size = 2G max_binlog_size = 1 G binlog_expire_logs_seconds=2592000 master_info_repository = TABELLE relay_log_info_repository = TABELLE gtid_mode = ein enforce_gtid_consistency = 1 binlog_checksum=KEINE log_slave_updates Slave-Zeilen-Suchalgorithmen = "INDEX_SCAN, HASH_SCAN" binlog_format = Zeile binlog_row_image=VOLL relay_log_recovery = 1 Relay-Log-Bereinigung = 1 Schlüsselpuffergröße = 32 M Lesepuffergröße = 8 M read_rnd_buffer_size = 4M bulk_insert_buffer_size = 64 MB myisam_sort_buffer_size = 128 M myisam_max_sort_file_size = 10 G myisam_repair_threads = 1 Sperrwartezeitüberschreitung = 3600 explizite_Vorgaben_für_Zeitstempel = 1 innodb_thread_concurrency = 0 innodb_sync_spin_loops = 100 innodb_spin_wait_delay = 30 #transaction_isolation = WIEDERHOLBARES LESEN transaction_isolation = LESEN-COMMITTED #innodb_additional_mem_pool_size = 16M innodb_buffer_pool_size = 2867 M innodb_buffer_pool_instances = 4 innodb_buffer_pool_load_at_startup = 1 innodb_buffer_pool_dump_at_shutdown = 1 innodb_data_file_path = ibdata1:1G:autoextend innodb_flush_log_at_trx_commit = 1 innodb_log_buffer_size = 32 M innodb_log_file_size = 2G innodb_log_files_in_group = 3 innodb_max_undo_log_size = 4G innodb_undo_directory = /data/mysql/mysql_3306/undolog # Passen Sie es entsprechend der IOPS-Fähigkeit Ihres Servers an. # Wenn Sie eine normale SSD verwenden, können Sie es auf 10.000 - 20.000 anpassen. # Wenn Sie eine High-End-PCIe-SSD-Karte konfigurieren, können Sie sie höher einstellen, beispielsweise 50000 - 80000 innodb_io_capacity = 4000 innodb_io_capacity_max = 8000 innodb_flush_sync = 0 innodb_flush_neighbors = 0 innodb_write_io_threads = 8 innodb_read_io_threads = 8 innodb_purge_threads = 4 innodb_page_cleaners = 4 innodb_open_files = 65535 innodb_max_dirty_pages_pct = 50 innodb_flush_method = O_DIRECT innodb_lru_scan_depth = 4000 innodb_checksum_algorithm = crc32 innodb_lock_wait_timeout = 10 innodb_rollback_on_timeout = 1 innodb_print_all_deadlocks = 1 innodb_file_per_table = 1 innodb_online_alter_log_max_size = 4G innodb_stats_on_metadata = 0 # einige Variablen für MySQL 8 log_error_verbosity = 3 innodb_print_ddl_logs = 1 binlog_expire_logs_seconds = 2592000 #innodb_dedicated_server = 0 innodb_status_file = 1 # Hinweis: Das Aktivieren von innodb_status_output & innodb_status_output_locks kann dazu führen, dass die Protokollfehlerdatei schneller wächst innodb_status_output = 0 innodb_status_output_locks = 0 #leistungsschema Leistungsschema = 1 performance_schema_instrument = "%memory%=ein" performance_schema_instrument = "%lock%=ein" #innodb-Monitor innodb_monitor_enable="Modul_innodb" innodb_monitor_enable="Modulserver" innodb_monitor_enable="module_dml" innodb_monitor_enable="module_ddl" innodb_monitor_enable="Modul_trx" innodb_monitor_enable="module_os" innodb_monitor_enable="Modul_bereinigen" innodb_monitor_enable="Modulprotokoll" innodb_monitor_enable="Modulsperre" innodb_monitor_enable="Modulpuffer" innodb_monitor_enable="Modulindex" innodb_monitor_enable="module_ibuf_system" innodb_monitor_enable="Modulpufferseite" innodb_monitor_enable="module_adaptive_hash" #MGR : : : : : : : : : : : : : : : schnell max_allowed_packet = 32M [mysqld_safe] #malloc-lib=/usr/local/mysql/lib/jmalloc.so nett=-19 Offene-Dateien-Limit=65535 Ende der Laufzeit 7-3. Die dritte Konfiguration # Die dritte Station if [ -f /etc/my.cnf ]; dann mv /etc/meine.cnf /etc/meine.cnf.`date +%Y%m%d%H%m`.bak fi # Knoten1 Katze >/data/mysql/mysql_3306/my_3306.cnf <<"EOF" [Kunde] Port = 3306 Socket = /data/mysql/mysql_3306/tmp/mysql_3306.sock [mysql] prompt="\u@\h \R:\m:\s [\d]> " kein automatisches Wiederaufwärmen [mysqld] Benutzer = MySQL Port = 3306 Administratoradresse = 127.0.0.1 basedir = /usr/local/mysql Datenverzeichnis = /data/mysql/mysql_3306/data Socket = /data/mysql/mysql_3306/tmp/mysql_3306.sock pid-Datei = mysql_3306.pid Zeichensatzserver = utf8mb4 skip_name_resolve = 1 #replicate-wild-ignore-table=mysql.% #replicate-wild-ignore-table=test.% #replicate-wild-ignore-table=information_schema.% # Zwei-Master konfigurieren #server-1 #auto-increment-offset = 1 #auto-increment-increment = 2 #server-2 #auto-increment-offset = 2 #auto-increment-increment = 2 # halbsynchrone Replikationseinstellungen # #plugin_dir = /usr/local/mysql/lib/mysql/plugin #plugin_load = "validate_password.so;rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so" plugin_dir = /usr/local/mysql/lib/plugin #Offizieller Versionspfad plugin_load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so" #Offizieller Versionspfad slave_parallel_workers = 4 Slave_Parallel_Typ = LOGISCHE_UHR Slave_Preserve_Commit_Order = 1 Open_files_limit = 65535 back_log = 1024 max_Verbindungen = 1024 max_connect_errors = 1000000 table_open_cache = 1024 Tabellendefinitionscache = 1024 Tabelle_öffnen_Cache-Instanzen = 64 Thread-Stapel = 512 KB externe Sperre = FALSE max_allowed_packet = 32M Sortierpuffergröße = 4 M Join-Puffergröße = 4 M Thread-Cache-Größe = 1536 interaktives_Timeout = 600 Wartezeitüberschreitung = 600 temporäre Tabellengröße = 32 M maximale Heap-Tabellengröße = 32 M slow_query_log = 1 log_timestamps = SYSTEM slow_query_log_file = /data/mysql/mysql_3306/logs/slow.log log-error = /data/mysql/mysql_3306/logs/error.log lange_Abfragezeit = 0,1 log_queries_not_using_indexes = 1 log_throttle_queries_not_using_indexes = 60 Mindestanzahl untersuchter Zeilen = 100 log_slow_admin_statements = 1 log_slow_slave_statements = 1 Server-ID = 1443306 log-bin = /data/mysql/mysql_3306/logs/mysql-bin sync_binlog = 1 binlog_cache_size = 4M max_binlog_cache_size = 2G max_binlog_size = 1 G binlog_expire_logs_seconds=2592000 master_info_repository = TABELLE relay_log_info_repository = TABELLE gtid_mode = ein enforce_gtid_consistency = 1 binlog_checksum=KEINE log_slave_updates Slave-Zeilen-Suchalgorithmen = "INDEX_SCAN, HASH_SCAN" binlog_format = Zeile binlog_row_image=VOLL relay_log_recovery = 1 Relay-Log-Bereinigung = 1 Schlüsselpuffergröße = 32 M Lesepuffergröße = 8 M read_rnd_buffer_size = 4M bulk_insert_buffer_size = 64 MB myisam_sort_buffer_size = 128 M myisam_max_sort_file_size = 10 G myisam_repair_threads = 1 Sperrwartezeitüberschreitung = 3600 explizite_Vorgaben_für_Zeitstempel = 1 innodb_thread_concurrency = 0 innodb_sync_spin_loops = 100 innodb_spin_wait_delay = 30 #transaction_isolation = WIEDERHOLBARES LESEN transaction_isolation = LESEN-COMMITTED #innodb_additional_mem_pool_size = 16M innodb_buffer_pool_size = 2867 M innodb_buffer_pool_instances = 4 innodb_buffer_pool_load_at_startup = 1 innodb_buffer_pool_dump_at_shutdown = 1 innodb_data_file_path = ibdata1:1G:autoextend innodb_flush_log_at_trx_commit = 1 innodb_log_buffer_size = 32 M innodb_log_file_size = 2G innodb_log_files_in_group = 3 innodb_max_undo_log_size = 4G innodb_undo_directory = /data/mysql/mysql_3306/undolog # Passen Sie es entsprechend der IOPS-Fähigkeit Ihres Servers an. # Wenn Sie eine normale SSD verwenden, können Sie es auf 10.000 - 20.000 einstellen. # Wenn Sie eine High-End-PCIe-SSD-Karte konfigurieren, können Sie sie höher einstellen, beispielsweise 50000 - 80000 innodb_io_capacity = 4000 innodb_io_capacity_max = 8000 innodb_flush_sync = 0 innodb_flush_neighbors = 0 innodb_write_io_threads = 8 innodb_read_io_threads = 8 innodb_purge_threads = 4 innodb_page_cleaners = 4 innodb_open_files = 65535 innodb_max_dirty_pages_pct = 50 innodb_flush_method = O_DIRECT innodb_lru_scan_depth = 4000 innodb_checksum_algorithm = crc32 innodb_lock_wait_timeout = 10 innodb_rollback_on_timeout = 1 innodb_print_all_deadlocks = 1 innodb_file_per_table = 1 innodb_online_alter_log_max_size = 4G innodb_stats_on_metadata = 0 # einige Variablen für MySQL 8 log_error_verbosity = 3 innodb_print_ddl_logs = 1 binlog_expire_logs_seconds = 2592000 #innodb_dedicated_server = 0 innodb_status_file = 1 # Hinweis: Das Aktivieren von innodb_status_output & innodb_status_output_locks kann dazu führen, dass die Protokollfehlerdatei schneller wächst innodb_status_output = 0 innodb_status_output_locks = 0 #leistungsschema Leistungsschema = 1 performance_schema_instrument = "%memory%=ein" performance_schema_instrument = "%lock%=ein" #innodb-Monitor innodb_monitor_enable="Modul_innodb" innodb_monitor_enable="Modulserver" innodb_monitor_enable="module_dml" innodb_monitor_enable="module_ddl" innodb_monitor_enable="Modul_trx" innodb_monitor_enable="module_os" innodb_monitor_enable="Modul_bereinigen" innodb_monitor_enable="Modulprotokoll" innodb_monitor_enable="Modulsperre" innodb_monitor_enable="Modulpuffer" innodb_monitor_enable="Modulindex" innodb_monitor_enable="module_ibuf_system" innodb_monitor_enable="Modulpufferseite" innodb_monitor_enable="module_adaptive_hash" #MGR : : : : : : : : : : : : : : : schnell max_allowed_packet = 32M [mysqld_safe] #malloc-lib=/usr/local/mysql/lib/jmalloc.so nett=-19 Anzahl der geöffneten Dateien = 65535 Ende der Laufzeit 8. Berechtigungen ändern, initialisieren und starten chown -R mysql.mysql /data/mysql/mysql_3306 chown -R mysql.mysql /usr/local/mysql/ # Initialisieren # /usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql --initialize-insecure # Die offizielle Empfehlung ist, --initialize zu verwenden, wodurch ein temporäres Passwort generiert wird, das sich nur schwer in das Fehlerprotokoll eintragen lässt. Ich verwende hier die passwortfreie Methode. /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql_3306/my_3306.cnf --initialize-insecure --user=mysql & #Starten Sie die Datenbank /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql/mysql_3306/my_3306.cnf & 9. Protokolle anzeigen #9. Überprüfen Sie das Protokoll# tail -f /data/mysql/mysql_3306/logs/error.log 10. Erstanmeldung #10. Erster Login /usr/local/mysql/bin/mysql -S /data/mysql/mysql_3306/tmp/mysql_3306.sock 11. Passwort ändern # Methode zum Ändern des Kennworts festlegen sql_log_bin = 0; ALTER USER 'root'@'localhost' IDENTIFIZIERT MIT mysql_native_password VON 'GJjumB6g4FcwdF3R6AZc'. PASSWORT LÄUFT NIE AB; Erstellen Sie den Benutzer „root“@„127.0.0.1“, identifiziert mit mysql_native_password durch „GJjumB6g4FcwdF3R6AZc“. Das Passwort läuft nie ab. Gewähren Sie „root“@„127.0.0.1“ alle Berechtigungen für *.* mit der Gewährungsoption. Erstellen Sie den Benutzer „admin_m“@„127.0.0.1“, identifiziert mit mysql_native_password durch „fcfmTbRw1tz2x5L5GvjJ“. Das Passwort läuft nie ab. Gewähren Sie 'admin_m'@'127.0.0.1' alle Berechtigungen für *.* mit der Gewährungsoption. Erstellen Sie den Benutzer „admin_m“@„%“, identifiziert mit mysql_native_password durch „fcfmTbRw1tz2x5L5GvjJ“. Das Passwort läuft nie ab. Gewähren Sie 'admin_m'@'%' alle Berechtigungen für *.* mit der Gewährungsoption. Erstellen Sie den Benutzer „test_w“@„%“, identifiziert mit mysql_native_password von „EeCrfUDO6wRzn72BBQ52“. Das Passwort läuft nie ab. gewähre „test_w“@„%“ die Berechtigung zum Einfügen, Löschen, Aktualisieren und Auswählen auf db144.*; Erstellen Sie den Benutzer „test_r“@„%“, identifiziert mit mysql_native_password von „EeCrfUDO6wRzn72BBQ52“. Das Passwort läuft nie ab. gewähre „test_r“@„%“ die Berechtigung zum Einfügen, Löschen, Aktualisieren und Auswählen für db144.*; Erstellen Sie den Benutzer „repl“@„%“, IDENTIFIZIERT mit mysql_native_password durch „replpfhOTnWffQdQL3F3“; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; setze sql_log_bin = 1; 12. Verknüpfungseinstellungen Verknüpfungen ln -s /usr/local/mysql/lib/libmysqlclient.so /usr/lib/ ln -s /usr/local/mysql/lib/libmysqlclient.so.21 /usr/lib/libmysqlclient.so.21 ln -s /usr/local/mysql/lib/libmysqlclient.so /usr/lib64/ ln -s /usr/local/mysql/lib/libmysqlclient.so.21 /usr/lib64/libmysqlclient.so.21 ln -s /data/mysql/mysql_3306/tmp/mysql_3306.sock /tmp/mysql.sock ln -s /usr/local/mysql/bin/* /usr/bin/ Katze >>~/.bashrc <<"EOF" ########## Alias mysql.3306.start="/usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql/mysql_3306/my_3306.cnf &" Alias mysql.3306.stop="/usr/local/mysql/bin/mysqladmin -h127.0.0.1 -P 3306 -uroot -p'GJjumB6g4FcwdF3R6AZc' Herunterfahren &" Alias mysql.3306.login="/usr/local/mysql/bin/mysql -h127.0.0.1 -P 3306 -uroot -p'GJjumB6g4FcwdF3R6AZc'" ########## Ende der Laufzeit Quelle /root/.bash_profile Katze >>/etc/ld.so.conf <<"EOF" /usr/local/mysql/lib Ende der Laufzeit ldconfig mysql.3306.login 13. MGR-Konfiguration 13-1. Erste Maschinenkonfiguration # MGR erste Maschinenkonfiguration: # Schritt 1: Erstellen Sie einen Benutzer für den Replikationssatz sql_log_bin=0; Erstellen Sie den Benutzer „repuser“@„%“, identifiziert durch „JhXpMK44ju8Vp5bxvO2N“; gewähre 'repuser'@'%' Replikations-Slave, Replikations-Client auf *.*; Erstellen Sie den Benutzer „repuser“@„127.0.0.1“, identifiziert durch „JhXpMK44ju8Vp5bxvO2N“; gewähre 'repuser'@'127.0.0.1' Replikations-Slave, Replikations-Client auf *.*; Erstellen Sie den Benutzer „repuser“@„localhost“, identifiziert durch „JhXpMK44ju8Vp5bxvO2N“; gewähre 'repuser'@'localhost' Replikations-Slave, Replikations-Client auf *.*; setze sql_log_bin=1; # Schritt 2: Konfigurieren Sie den für die Replikation verwendeten Benutzer. Ändern Sie „Master“ in „master_user='repuser',master_password='JhXpMK44ju8Vp5bxvO2N'“ für den Kanal „group_replication_recovery“. # Schritt 3: Installieren Sie das MySQL-Gruppenreplikations-Plugin. # Hinweis: Wenn Sie plugin_load="group_replication=group_replication.so" in my.cnf schreiben, müssen Sie das Plugin group_replication soname 'group_replication.so' nicht installieren. # Überprüfen Sie, ob die Installation erfolgreich war, indem Sie „plugins anzeigen;plugins anzeigen“ verwenden. # Schritt 4: Erstellen Sie eine Gruppe (der offizielle Begriff lautet „Initialisieren Sie eine Replikationsgruppe“, setzen Sie global group_replication_bootstrap_group=on; Gruppenreplikation starten; Setzen Sie die globale group_replication_bootstrap_group=off; Wählen Sie * aus Performance_schema.Replikationsgruppenmitgliedern; 13-2. Zweite und dritte Maschinenkonfiguration ########################################################################## #MGR konfiguriert andere Slave-Knoten #Auf allen Slave-Hosts in MySQL ausführen # Schritt 1: Erstellen Sie einen Benutzer für die Replikation, setzen Sie sql_log_bin=0; Erstellen Sie den Benutzer „repuser“@„%“, identifiziert durch „JhXpMK44ju8Vp5bxvO2N“; gewähre 'repuser'@'%' Replikations-Slave, Replikations-Client auf *.*; Erstellen Sie den Benutzer „repuser“@„127.0.0.1“, identifiziert durch „JhXpMK44ju8Vp5bxvO2N“; gewähre 'repuser'@'127.0.0.1' Replikations-Slave, Replikations-Client auf *.*; Erstellen Sie den Benutzer „repuser“@„localhost“, identifiziert durch „JhXpMK44ju8Vp5bxvO2N“; gewähre 'repuser'@'localhost' Replikations-Slave, Replikations-Client auf *.*; setze sql_log_bin=1; # Schritt 2: Konfigurieren Sie den für die Replikation verwendeten Benutzer. Ändern Sie „Master“ in „master_user='repuser',master_password='JhXpMK44ju8Vp5bxvO2N'“ für den Kanal „group_replication_recovery“. # Schritt 3: Installieren Sie das MySQL-Gruppenreplikations-Plugin. # Hinweis: Wenn Sie plugin_load="group_replication=group_replication.so" in my.cnf schreiben, müssen Sie das Plugin group_replication soname 'group_replication.so' nicht installieren. # Überprüfen Sie, ob die Installation erfolgreich war, indem Sie „plugins anzeigen;plugins anzeigen“ verwenden. # Schritt 4: Treten Sie der zuvor erstellten Replikationsgruppe bei, start group_replication; Wählen Sie * aus Performance_schema.Replikationsgruppenmitgliedern; ###################################################################################### # Überprüfen Sie den Status mysql> select * from performance_schema.replication_group_members; +------------------------------------------+--------------------------+-------------+-------------+--------------+-------------+----------------+ | KANALNAME | MITGLIEDS-ID | MITGLIEDSHOST | MITGLIEDSPORT | MITGLIEDSSTATUS | MITGLIEDSROLE | MITGLIEDSVERSION | +------------------------------------------+--------------------------+-------------+-------------+--------------+-------------+----------------+ | group_replication_applier | d955da6d-0048-11ea-b7b4-525400f4342d | bj-db-m1 | 3306 | ONLINE | PRIMARY | 8.0.18 | | group_replication_applier | e050c34f-0048-11ea-917d-52540021fab9 | bj-db-m3 | 3306 | ONLINE | SECONDARY | 8.0.18 | | group_replication_applier | e6c56347-0048-11ea-9e8b-5254007c241f | bj-db-m2 | 3306 | ONLINE | SECONDARY | 8.0.18 | +------------------------------------------+--------------------------+-------------+-------------+--------------+-------------+----------------+ 3 Zeilen im Satz (0,00 Sek.) 14. Umstellung von einem einzelnen Master auf mehrere Master ###################################################################### # Wechseln von Einzelmaster zu Multimaster. # Der MGR-Umschaltmodus erfordert einen Neustart der Gruppenreplikation, daher müssen Sie zuerst die Gruppenreplikation auf allen Knoten herunterfahren. #Setzen Sie group_replication_single_primary_mode=OFF und andere Parameter und starten Sie dann die Gruppenreplikation. 1) Stoppen Sie die Gruppenreplikation (wird auf allen MGR-Knoten ausgeführt): Stoppen Sie die Gruppenreplikation. Setzen Sie den globalen Gruppenreplikationsmodus „single_primary_mode“ auf „OFF“. Setzen Sie global group_replication_enforce_update_everywhere_checks=ON; 2) Wählen Sie einen beliebigen MGR-Knoten zur Ausführung aus (wählen Sie hier beispielsweise MGR-Knoten1 aus): Setzen Sie global group_replication_recovery_get_public_key=1; Setzen Sie GLOBAL group_replication_bootstrap_group=ON; STARTEN SIE GROUP_REPLICATION; Setzen Sie GLOBAL group_replication_bootstrap_group=OFF; 3) Führen Sie es dann auf anderen MGR-Knoten aus (hier bezieht es sich auf MGR-Knoten2 und MGR-Knoten3): Setzen Sie global group_replication_recovery_get_public_key=1; STARTEN SIE GROUP_REPLICATION; 4) MGR-Gruppeninformationen anzeigen (können auf jedem MGR-Knoten angezeigt werden) WÄHLEN SIE * AUS Performanceschema.Replikationsgruppenmitglieder; # Sie können sehen, dass der Status aller MGR-Knoten online ist, die Rolle PRIMARY ist und der MGR-Multimastermodus erfolgreich eingerichtet wurde. ########################################################################## 15. Umstellung von mehreren Mastern auf einen einzigen Master ########################################################################## # Zurück vom Multi-Master-Modus in den Single-Master-Modus wechseln 1) Gruppenreplikation stoppen (auf allen MGR-Knoten ausführen): Stoppen Sie die Gruppenreplikation. Setzen Sie global group_replication_enforce_update_everywhere_checks=OFF; Setzen Sie den globalen Gruppenreplikationsmodus „single_primary_mode“ auf „ON“. 2) Wählen Sie einen Knoten als Masterknoten aus und führen Sie ihn auf dem Masterknoten aus (hier wird MGR-Knoten1 als Masterknoten ausgewählt). Setzen Sie GLOBAL group_replication_bootstrap_group=ON; STARTEN SIE GROUP_REPLICATION; Setzen Sie GLOBAL group_replication_bootstrap_group=OFF; 3) Führen Sie die folgenden Schritte auf den verbleibenden Knoten aus, d. h. den Slave-Knoten (mit den Slave-Knoten sind hier MGR-Knoten2 und MGR-Knoten3 gemeint): STARTEN SIE GROUP_REPLICATION; 4) MGR-Gruppeninformationen anzeigen (können auf jedem MGR-Knoten angezeigt werden) WÄHLEN SIE * AUS Performanceschema.Replikationsgruppenmitglieder; ########################################################################## 16. Störungsvorkehrungen # Vorsichtsmaßnahmen bei Störungen: # Stellen Sie im Single-Master-Modus den Knoten MGR-node1 wieder her. Nach der Wiederherstellung müssen Sie die Gruppenreplikationsfunktion des Knotens manuell aktivieren. # Wenn ein Knoten ausfällt, muss er nach der Wiederherstellung wieder dem MGR-Cluster beitreten. Der richtige Weg ist: STOPPEN SIE DIE GRUPPENREPLIKATION; STARTEN SIE GROUP_REPLICATION; # Wenn ein Knoten hängt, werden andere Knoten weiterhin synchronisiert. # Wenn der ausgefallene Knoten wiederhergestellt ist, müssen Sie nur die Gruppenreplikationsfunktion des Knotens manuell aktivieren ("START GROUP_REPLICATION;"). # Sie können dem MGR-Gruppenreplikationscluster normal beitreten und Daten von anderen Knoten automatisch synchronisieren. # Wenn bei der E/A-Replikation eine Ausnahme auftritt. # Nach der Bestätigung, dass die Daten korrekt sind. # Suchen Sie die GTID der Masterdatenbank. mysql> zeige globale Variablen wie „%gtid%“ an. +----------------------------------------------+------------------------------------------+ | Variablenname | Wert | +----------------------------------------------+------------------------------------------+ | binlog_gtid_simple_recovery | EIN | | enforce_gtid_consistency | EIN | | Gruppenreplikations-GTID-Zuweisungsblockgröße | 1000000 | | gtid_executed | 58f6e65e-9309-11e9-9d88-525400184a0a:1-946050:1000003 | | gtid_executed_compression_perioden | 1000 | | gtid_mode | EIN | | gtid_owned | | | gtid_purged | | | session_track_gtids | AUS | +----------------------------------------------+------------------------------------------+ Zeilen im Set (0,00 Sek.) # Stoppen Sie GROUP_REPLICATION im fehlerhaften Slave; Master zurücksetzen; Setzen Sie global gtid_purged='58f6e65e-9309-11e9-9d88-525400184a0a:1-946055:1000003'; STARTEN SIE GROUP_REPLICATION; # Whitelist-Netzwerksegment hinzufügen, Group_Replication stoppen; Setzen Sie die globale group_replication_ip_whitelist="127.0.0.1/32,172.16.60.0/24,172.16.50.0/24,172.16.51.0/24"; Gruppenreplikation starten; Variablen wie „group_replication_ip_whitelist“ anzeigen; # Bitte beachten: Bevor Sie die Whitelist konfigurieren, müssen Sie zuerst die Gruppenreplikation deaktivieren und „stop group_replication;“ ausführen. Zusammenfassen Das Obige ist die Einführung des Herausgebers in die mgr-Konstruktion von MySQL 8.0.18 und seine Umschaltfunktionen. Ich hoffe, es wird für alle hilfreich sein! Das könnte Sie auch interessieren:
|
<<: Zabbix-Konfiguration DingTalk-Alarmfunktions-Implementierungscode
>>: Docker installiert Redis und führt den visuellen Client für den Betrieb ein
1 Installation Laden Sie die entsprechende entpac...
Inhaltsverzeichnis 1. Installationsvorbereitung 1...
Inhaltsverzeichnis verwendenMemo useCallback verw...
In diesem Artikel wird der einfache Prozess der I...
Vor Kurzem wurde ein System bereitgestellt, das n...
Wenn Sie auf einem Windows-Server regelmäßig Date...
Heutige Aufgaben 1. Wahl der Linux-Distribution 2...
MySQL Binlog ist ein sehr wichtiges Protokoll in ...
0. Als ich dieses Dokument erstellte, war es unge...
Docker Compose Docker Compose unterteilt die verw...
Hintergrund Wir verwenden Chrome Dev Tools häufig...
Hintergrund Dieser Fehler wurde dadurch verursach...
Inhaltsverzeichnis 1. Grundlagen 1.Referenz 2. to...
Inhaltsverzeichnis 1. Erstellen Sie ein Hadoop-Ve...
Dieser Artikel installiert die Google-Eingabemeth...