siehe auch:
root@db01:~# rm -f /etc/localtime ; ln -s /usr/share/zoneinfo/CET /etc/localtime root@db01:~# timedatectl Local time: Mon 2023-06-19 14:26:33 CEST Universal time: Mon 2023-06-19 12:26:33 UTC RTC time: Mon 2023-06-19 12:26:33 Time zone: CET (CEST, +0200) System clock synchronized: yes NTP service: active RTC in local TZ: no root@db01:~# service mysql restart root@db01:~# echo "SHOW VARIABLES LIKE '%time_zone%';" | mysql -t +------------------+--------+ | Variable_name | Value | +------------------+--------+ | system_time_zone | CEST | | time_zone | SYSTEM | +------------------+--------+
Alt:
STOP SLAVE; RESET SLAVE ALL; CHANGE MASTER TO MASTER_HOST='knoten01', MASTER_PORT=3306, MASTER_USER='otto', MASTER_PASSWORD='geheim', MASTER_AUTO_POSITION=1 FOR CHANNEL 'Knoten1'; CHANGE MASTER TO MASTER_HOST='knoten02', MASTER_PORT=3306, MASTER_USER='otto', MASTER_PASSWORD='geheim', MASTER_AUTO_POSITION=1 FOR CHANNEL 'Knoten2'; START SLAVE;
Neu (seit MySQL 8.0.23):
STOP REPLICA; RESET REPLICA ALL; CHANGE REPLICATION SOURCE TO SOURCE_HOST='knoten01', SOURCE_PORT=3306, SOURCE_USER=otto, SOURCE_PASSWORD='geheim', SOURCE_AUTO_POSITION=1 FOR CHANNEL 'Knoten1'; CHANGE REPLICATION SOURCE TO SOURCE_HOST='knoten02', SOURCE_PORT=3306, SOURCE_USER=otto, SOURCE_PASSWORD='geheim', SOURCE_AUTO_POSITION=1 FOR CHANNEL 'Knoten2'; START REPLICA; CHANGE REPLICATION SOURCE TO SOURCE_LOG_FILE='source_log_name', SOURCE_LOG_POS=source_log_pos;
> echo "SHOW VARIABLES LIKE 'enforce_gtid_consistency';" | mysql -t +--------------------------+-------+ | Variable_name | Value | +--------------------------+-------+ | enforce_gtid_consistency | ON | +--------------------------+-------+
<hidden percona-keyring.gpg.b64>
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 jp4kKWnUoGdV0P1bUXaAbvXRzlIcx7dOD7tZ
</hidden>
> cat percona-keyring.gpg.b64 | base64 -d > /etc/apt/trusted.gpg.d/percona-keyring.gpg > echo "deb http://repo.percona.com/ps-80/apt $(lsb_release -cs) main" >> /etc/apt/sources.list.d/percona.list > echo "deb http://repo.percona.com/pxc-80/apt $(lsb_release -cs) main" >> /etc/apt/sources.list.d/percona.list > echo "deb http://repo.percona.com/pxb-80/apt $(lsb_release -cs) main" >> /etc/apt/sources.list.d/percona.list > echo "deb http://repo.percona.com/tools/apt $(lsb_release -cs) main" >> /etc/apt/sources.list.d/percona.list > echo "deb http://repo.percona.com/prel/apt $(lsb_release -cs) main" >> /etc/apt/sources.list.d/percona.list > apt update > apt install percona-xtradb-cluster-server percona-xtrabackup-80 net-tools > service mysql start > netstat -antp | egrep "3306|4444|4567|4568" > mysqlshow
<hidden /root/bin/Kontrolle.sh>
#!/bin/bash echo " SHOW VARIABLES WHERE Variable_name IN ( 'port', 'wsrep_cluster_address' ); SHOW STATUS WHERE variable_name IN ( 'wsrep_last_committed', 'wsrep_local_send_queue_avg', 'wsrep_local_recv_queue_avg', 'wsrep_local_state_comment', 'wsrep_cluster_size', 'wsrep_local_bf_aborts' ); " | mysql -t
</hidden>
<hidden /etc/mysql/mysql.conf.d/max_flushing.cnf>
[mysqld] # https://www.percona.com/blog/2020/05/07/prepare-mysql-for-a-safe-shutdown/ # 4. Configure InnoDB for Max Flushing. # SET GLOBAL innodb_fast_shutdown=0; SET GLOBAL innodb_max_dirty_pages_pct=0; SET GLOBAL innodb_change_buffering='none'; # SHOW VARIABLES LIKE 'innodb_fast_shutdown'; SHOW VARIABLES LIKE 'innodb_max_dirty_pages_pct'; SHOW VARIABLES LIKE 'innodb_change_buffering'; innodb_fast_shutdown=0 innodb_max_dirty_pages_pct=0 innodb_change_buffering='none'
</hidden>
> vi /etc/mysql/mysql.conf.d/mysqld.cnf ... [mysqld] server-id = 1 bind-address = 0.0.0.0 ... wsrep_cluster_address = gcomm:// #wsrep_cluster_address = "gcomm://knoten01,knoten02,knoten03" ... wsrep_cluster_name = clustername wsrep_node_name = knoten01 ...
> service mysql stop > rm -f /var/lib/mysql/auto.cnf > echo > /var/log/mysql/error.log > service mysql start > netstat -antp | grep -E "3306|4444|4567|4568" > mysqlshow > service mysql stop > rm -f /var/lib/mysql/auto.cnf > tar cvzf /tmp/mysql.tgz /var/lib/mysql > service mysql start
/tmp/mysql.tgz muß von Knoten01 auf Knoten02 und Knoten03 übertragen werden.
> vi /etc/mysql/mysql.conf.d/mysqld.cnf ... [mysqld] server-id = 2 bind-address = 0.0.0.0 ... #wsrep_cluster_address = gcomm:// wsrep_cluster_address = "gcomm://knoten01,knoten02,knoten03" ... wsrep_cluster_name = clustername wsrep_node_name = knoten02 ...
> vi /etc/mysql/mysql.conf.d/mysqld.cnf ... [mysqld] server-id = 3 bind-address = 0.0.0.0 ... #wsrep_cluster_address = gcomm:// wsrep_cluster_address = "gcomm://knoten01,knoten02,knoten03" ... wsrep_cluster_name = clustername wsrep_node_name = knoten03 ...
> service mysql stop > rm -f /var/lib/mysql/auto.cnf > echo > /var/log/mysql/error.log > rm -fr /var/lib/mysql/* > tar xvzf /tmp/mysql.tgz -C / > service mysql start > netstat -antp | grep -E "3306|4444|4567|4568" > mysqlshow
> vi /etc/mysql/mysql.conf.d/mysqld.cnf ... [mysqld] server-id = 1 bind-address = 0.0.0.0 ... #wsrep_cluster_address = gcomm:// wsrep_cluster_address = "gcomm://knoten01,knoten02,knoten03" ... wsrep_cluster_name = clustername wsrep_node_name = knoten01 ...
> service mysql stop > rm -f /var/lib/mysql/auto.cnf > echo > /var/log/mysql/error.log > service mysql start > netstat -antp | grep -E "3306|4444|4567|4568" > mysqlshow
siehe auch:
INFORMATION_SCHEMA Tables| percona-xtradb-cluster-5.7 | percona-xtradb-cluster-8.0 | Bemerkungen |
|---|---|---|
/etc/mysql/percona-xtradb-cluster.conf.d/wsrep.cnf | /etc/mysql/mysql.conf.d/mysqld.cnf | default MySQL configuration file on Debian and Ubuntu |
/etc/percona-xtradb-cluster.conf.d/wsrep.cnf | /etc/my.cnf | default MySQL configuration file on Red Hat and CentOS |
default authentication plugin: mysql_native_password | default authentication plugin: caching_sha2_password | Be sure you are running on the latest 5.7 version before you upgrade to 8.0. ProxySQL option --syncusers will not work if the Percona XtraDB Cluster user is created using caching_sha2_password. Use the mysql_native_password authentication plugin in these cases. ⇒ default_authentication_plugin=mysql_native_password |
character_set_server=latin1 | character_set_server=utf8mb4 | ... und 37 weitere Optionen haben ihre Voreinstellung geändert |
keine Größenbeschränkung für Indizes vor 5.7.35 | Größenbeschränkung für Indizes auf 767 Byte | Vor MySQL 5.7.35 gab es keine Größenbeschränkung für Indizes in Tabellen mit redundantem oder kompaktem Zeilenformat. Ab MySQL 5.7.35 liegt die Grenze bei 767 Bytes. Ein Upgrade von einer MySQL-Version vor 5.7.35 auf MySQL 8.0 kann zu unzugänglichen Tabellen führen. Wenn eine Tabelle mit redundantem oder kompaktem Zeilenformat einen Index hat, der größer als 767 Bytes ist, löschen Sie den Index und erstellen Sie ihn vor einem Upgrade auf MySQL 8.0 neu. |
query_cache_xxx | — | The query cache was removed. Removed in MySQL 8.0.3. |
log_bin=OFF | log_bin=ON | Bei Problemen, diese Option einfach aus der Konfiguration entfernen. |
log_slave_updates | log_replica_updates | |
expire_logs_days = 7 | binlog_expire_logs_seconds = 604800 | |
symbolic_links = 0 | ist bereits die Voreinstellung | |
wsrep_slave_threads = 8 | wsrep_applier_threads = 8 | |
wsrep_sst_method = rsync | wsrep_sst_method = xtrabackup-v2 | Die Unterstützung für mysqldump war ab PXC 5.7 veraltet und wurde nun vollständig entfernt. Die einzige unterstützte SST-Methode ist xtrabackup-v2. Die erforderlichen Percona XtraBackup (PXB)-Binärdateien werden jetzt als Teil von PXC 8.0 ausgeliefert, sie werden nicht für die allgemeine Verwendung installiert. Wenn Sie also PXB außerhalb eines SST verwenden möchten, müssen Sie PXB separat installieren. |
wsrep_sst_auth | — | Da wsrep_sst_auth nur auf der Geberseite benötigt wird, um ein Backup zu erstellen, verwendet PXC 8.0 einen internen Benutzer (der speziell für die Verwendung durch PXC erstellt wurde) mit einem zufällig generierten Passwort. Da dieser Benutzer nur auf dem Spender benötigt wird, wird das Klartext-Passwort auf dem Joiner-Knoten nicht benötigt. Dieses Passwort besteht aus 32 zufällig generierten Zeichen. Für jede SST-Anfrage wird ein neues Passwort generiert. Der Klartext des Passworts wird nie gespeichert und verlässt den Knoten nie. Der Benutzername/das Passwort wird über unbenannte Pipes (stdin) an das SST-Skript gesendet. |
pxc-encrypt-cluster-traffic | — | In PXC 8 haben wir uns dafür entschieden, die Verschlüsselung standardmäßig für den gesamten Replikationsdatenverkehr zu aktivieren, um die höchste sofort einsatzbereite Sicherheit durchzusetzen. Obwohl dies eine offensichtliche Verbesserung ist, muss sich PXC 8 anders verhalten als sein Vorgänger PXC 5.7. |
mysql_upgrade | — | Wenn PXC 8.0 erkennt, dass das SST von einer niedrigeren Version stammt, wird mysql_upgrade automatisch aufgerufen. Außerdem wird bei Bedarf „RESET SLAVE ALL“ auf dem neuen Knoten ausgeführt. Dies wird aufgerufen, wenn ein SST von PXC 5.7 und PXC 8.0 empfangen wird. |
Ab MySQL 8.0 - kein mysql_upgrade mehr:
> mysql_upgrade The mysql_upgrade client is now deprecated. The actions executed by the upgrade client are now done by the server. To upgrade, please start the new MySQL binary with the older data directory. Repairing user tables is done automatically. Restart is not required after upgrade. The upgrade process automatically starts on running a new MySQL binary with an older data directory. To avoid accidental upgrades, please use the --upgrade=NONE option with the MySQL binary. The option --upgrade=FORCE is also provided to run the server upgrade sequence on demand. It may be possible that the server upgrade fails due to a number of reasons. In that case, the upgrade sequence will run again during the next MySQL server start. If the server upgrade fails repeatedly, the server can be started with the --upgrade=MINIMAL option to start the server without executing the upgrade sequence, thus allowing users to manually rectify the problem.