Heim >Datenbank >MySQL-Tutorial >MySQL-Installation mehrerer Instanzen
Schritt 1. Vorbereitung
Schließen Sie die Firewall; installieren Sie MySQL-Abhängigkeiten Verwenden Sie die libaio-Bibliothek; laden Sie die ausführbare MySQL-Datei herunter, erstellen Sie sie und benennen Sie sie um. Weitere Vorbereitungen werden hier nicht beschrieben.
Das Verzeichnis der ausführbaren Datei ist /data/mysql57
Benutzer- und Gruppenanweisungen hinzufügen
groupadd mysql useradd mysql -g mysql
Schritt 2 . Fügen Sie Umgebungsvariablen hinzu
Fügen Sie in der Datei /etc/profile PATH=${PATH}:/data/mysql57/bin/ hinzu.
Nach dem Speichern als An Werden sofort wirksam, führen Sie die Quelle /etc/profile aus.
Führen Sie
mkdir -p mysql3306/data mysql3306/mysql_log mysql3306/tmp mysql3307/data mysql3307/mysql_log mysql3307/tmp mysqld_multi/login den Daten aus Stammverzeichnis
Dieser Schritt ist wichtig, um eine Protokolldatei zu erstellen.
touch /data/mysql3306/mysql_log/mysql3306.errtouch /data/mysql3307/mysql_log/mysql3307.err
Verzeichnis- und Dateiberechtigungen erteilen
chown -R mysql.mysql mysql3* mysqld_multi
In diesem Testfall wird mysql57 von anderen Diensten kopiert, nicht direkt heruntergeladen und dekomprimiert, sodass die folgenden beiden hinzugefügt werden Schrittautorisierungsvorgang.
chmod -R 755 /data/mysql57/binrrree
Schritt 4. Bearbeiten Sie my.cnf
chmod -R 755 /data/mysql57/support-files
Schritt 5. Instanz initialisieren
Initialisieren Sie die Instanz von Port 3306 und achten Sie auf das generierte temporäre Passwort.
[client] host=localhost socket = /tmp/mysql.sock default-character-set=utf8mb4 #loose-local-infile=0 [mysqld] user=mysql log_bin_trust_function_creators=1 secure_file_priv='/tmp' ########server setting####### sql_mode = "ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" character-set-server=utf8mb4 collation_server=utf8mb4_unicode_ci lower_case_table_names = 0 skip_name_resolve = 1 #max_connect_errors = 1000 max_connections = 2000 thread_cache_size=256 #thread_stack= 262144 #back_log=80 max_allowed_packet = 134217728 event_scheduler = 1 local-infile=0 #lower_case_table_names = 1 explicit_defaults_for_timestamp = 1 expire_logs_days = 7 log_bin_trust_function_creators =1 ####.frm/.ibd files qty related open_files_limit=65535 innodb_open_files=65535 table_open_cache=65535 table_definition_cache=65535 #### seesion buffer related read_buffer_size = 262144 read_rnd_buffer_size = 524288 sort_buffer_size = 8388608 join_buffer_size = 8388608 ####memory table size tmp_table_size =67108864 max_heap_table_size=67108864 ####timeout interactive_timeout = 1800 wait_timeout = 1800 # connect_timeout=10 ########slow query ######## slow_query_log = 1 log_slow_slave_statements = 1 #log_queries_not_using_indexes = 1 log_throttle_queries_not_using_indexes = 10 long_query_time = 1 #min_examined_row_limit = 10000 ########innodb settings######## innodb_buffer_pool_size = 10737418240 innodb_buffer_pool_instances = 16 innodb_buffer_pool_dump_pct = 40 innodb_lru_scan_depth = 2048 innodb_page_cleaners = 16 #innodb_purge_threads = 4 innodb_sort_buffer_size = 67108864 #innodb_file_per_table = 1 #innodb_flush_log_at_trx_commit = 1 innodb_undo_log_truncate = 1 innodb_undo_tablespaces = 3 innodb_max_undo_log_size = 2147483648 innodb_purge_rseg_truncate_frequency = 128 innodb_log_file_size = 1073741824 innodb_log_files_in_group = 3 innodb_log_buffer_size = 16777216 innodb_flush_method = O_DIRECT innodb_flush_neighbors = 0 innodb_print_all_deadlocks = 1 innodb_strict_mode = 1 #innodb_lock_wait_timeout = 50 innodb_io_capacity = 32768 innodb_io_capacity_max = 65536 innodb_thread_concurrency = 32 innodb_write_io_threads = 8 innodb_read_io_threads = 8 ########replication settings######## master_info_repository = TABLE relay_log_info_repository = TABLE gtid_mode = on enforce_gtid_consistency = 1 binlog_gtid_simple_recovery=1 relay_log_recovery = 1 slave-parallel-type = LOGICAL_CLOCK slave-parallel-workers = 16 slave_transaction_retries=128 slave_preserve_commit_order=1 log_slave_updates=1 binlog_format = ROW log_timestamps=system binlog_rows_query_log_events = 1 binlog_row_image='full' slave_skip_errors = ddl_exist_errors ########semi sync replication settings######## ##plugin_dir=/data/mysql/plugin/ #plugin_load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so" #rpl_semi_sync_master_enabled = 1 #rpl_semi_sync_master_timeout = 5000 #rpl_semi_sync_slave_enabled = 1 [mysqld_multi] mysqld = /data/mysql57/bin/mysqld_safe mysqladmin = /data/mysql57/bin/mysqladmin log = /data/mysqld_multi/log/mysqld_multi.log [mysqld3306] basedir = /data/mysql57 mysqladmin=mysqladmin datadir=/data/mysql3306/data port=3306 server_id=102473306 socket= /tmp/mysql_3306.sock tmpdir = /data/mysql3306/tmp pid-file = /data/mysql3306/mysql_log/mysql3306.pid slow_query_log_file = /data/mysql3306/mysql_log/mysql3306_slow_new.log log-error = /data/mysql3306/mysql_log/mysql3306.err general_log_file= /data/mysql3306/mysql_log/mysql3306.genlog log-bin = /data/mysql3306/mysql_log/mysql3306_bin relay_log = /data/mysql3306/mysql_log/relay3306.log innodb_buffer_pool_size = 90G innodb_buffer_pool_instances = 8 [mysqld3307] basedir = /data/mysql57 mysqladmin=mysqladmin datadir=/data/mysql3307/data port=3307 server_id=102473307 socket= /tmp/mysql_3307.sock tmpdir = /data/mysql3307/tmp pid-file = /data/mysql3307/mysql_log/mysql3307.pid slow_query_log_file = /data/mysql3307/mysql_log/mysql3307_slow_new.log log-error = /data/mysql3307/mysql_log/mysql3307.err general_log_file= /data/mysql3307/mysql_log/mysql3307.genlog log-bin = /data/mysql3307/mysql_log/mysql3307_bin relay_log = /data/mysql3307/mysql_log/relay3307.log innodb_buffer_pool_size = 90G innodb_buffer_pool_instances = 8 [mysqldump] quick
Initialisieren Sie die Instanz von Port 3307 und achten Sie auf das generierte temporäre Passwort.
/data/mysql57/bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql --basedir=/data/mysql57 --datadir=/data/mysql3306/data
Schritt 6. Kopieren und generieren Sie mysqld_multi und fügen Sie es zum Booten hinzu
/data/mysql57/bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql --basedir=/data/mysql57 --datadir=/data/mysql3307/data
cp /data/mysql57/support-files/mysqld_multi.server /etc/init.d/mysqld_multi
Schritt 7. Mehrere Instanzen von Mysqld Open
Alle Instanzen öffnen
chkconfig --add mysqld_multi
Öffnungsstatus anzeigen (Status aller Instanzen anzeigen)
mysqld_multi start
Die angegebene Instanz öffnen
Öffnen Sie [mysqld3306] in /etc/my.cnf, wobei die Zahl nach mysqld das Label ist. Beispielsweise öffnet das 3306-Label
mysqld_multi report
auch die 3307-Labelinstanz
mysqld_multi start 3306
(Hinweis: Hier wird nicht erwähnt, dass die Instanz über den Befehl „mysqld_multi stop“ heruntergefahren werden soll. Warum nicht, denn der Befehl ist ungültig. Der Vorgang in Schritt 9 macht ihn gültig)
Für die Anmeldung bei mehreren Instanzen ist die Angabe des Socket-Parameters erforderlich
Die Methode zur Anmeldung beim 3306 Die Instanz in diesem Test ist:
mysqld_multi start 3307
Schritt 9. Erteilen Sie die Berechtigung zum Herunterfahren der Instanz über mysqld_multi stop.
Um die Instanz zu schließen, müssen Sie den Root-Benutzer und das Passwort konfigurieren und die Datei /etc/my.cnf ändern.
Fügen Sie
mysql -S /tmp/mysql_3306.sock -uroot --port 3306 -p
an der Position [Client] hinzu, da das Kontokennwort in der Datei gespeichert werden muss, was ein Sicherheitsrisiko darstellt. Ob dies in der tatsächlichen Umgebung so eingerichtet werden soll, hängt von der jeweiligen Situation und den Sicherheitsanforderungen ab.
Nach den oben genannten Schritten wurden 2 MySQL-Instanzen erfolgreich auf diesem Server installiert, eine mit Port 3306 und die andere mit Port 3307
Das obige ist der detaillierte Inhalt vonMySQL-Installation mehrerer Instanzen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!