Archiv der Kategorie: MySql

MySql: Replikation neu aufsetzen

Wenn der Slave bei der Replikation Fehler anzeigt (mysql> SHOW SLAVE STATUS;) und die zu verarbeitende Datenmenge zu gross ist, dann geht es oftmals schneller, die Replikation neu zu starten. Voraussetzung: Es muss eine funktionierende Replikation bestehen (Replikations-User und Einstellungen in my.conf vorhanden, root user).

*** SLAVE:

#> mysql
mysql> STOP SLAVE;

*** MASTER:

#> mysql
mysql> FLUSH TABLES WITH READ LOCK;
mysql> SHOW MASTER STATUS;
-- Filename und Position merken
mysql> UNLOCK TABLES;
mysql>quit;
#> mysqldump typo3dev > /root/typo3dev.sql
#> scp /root/typo3dev.sql root@slave.server:/root/typo3dev.sql

Weiterlesen

mysql: Replication error überspringen

Wenn die MySQL-Replikation hängt, weil es einen Fehler gegeben hat und dieser Fehler übersprungen werden soll, damit die Replikation weiterlaufen kann (mysql console):

SHOW SLAVE STATUS\G

Zeigt den Fehler/Grund an, warum die Replikation hängen geblieben ist.

STOP SLAVE; SET GLOBAL sql_slave_skip_counter=1000000; START SLAVE;

Soll den Fehler überspringen, die Replikation sollte, wenn alles klappt wieder anlaufen. Das wird wieder mit SHOW SLAVE STATUS kontrolliert.
Wenn die Replikation wieder läuft, kann der Counter wieder auf Null gesetzt werden:

STOP SLAVE; SET GLOBAL sql_slave_skip_counter=0; START SLAVE;

Danach wieder mit SHOW SLAVE STATUS kontrollieren, ob nach alles funktioniert.

Einzeiler bei Pastebin: http://pastebin.com/f2bXQ8xA

MySQL: Neuen User anlegen und einer Datenbank zuweisen (ohne GRANT)

– Neuen User anlegen
– alle Rechte zuweisen
– GRANT-Recht wieder entziehen
– Rechte schreiben/aktivieren (FLUSH)

Auf der mysql-Console muss dazu folgendes eingegeben werden:

CREATE USER 'typo3dev'@'localhost' IDENTIFIED BY 'thepassword';
GRANT ALL PRIVILEGES ON typo3dev.* TO 'typo3dev'@'localhost';
REVOKE GRANT OPTION ON typo3dev.* TO 'typo3dev'@'localhost';
FLUSH PRIVILEGES;

MySQL: Resync Replication

Mysql-Replication-Resync
> = Mysql
$ = User Shell
# = Root Shell

*** MASTER ***
>
RESET MASTER;
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;

#
mysqldump -uroot -p –all-databases > /a/path/mysqldump.sql

>
UNLOCK TABLES;

*** SLave ***

#

>
STOP SLAVE;

#
mysql -uroot -p < mysqldump.sql >
RESET SLAVE;
CHANGE MASTER TO MASTER_LOG_FILE=’mysql-bin.000001′, MASTER_LOG_POS=98

(Where the values of the above fields are the ones you copied before)

START SLAVE;
SHOW SLAVE STATUS;

(expected output:)
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

///// OPTIONS FOR INNODB /////
–opt –single-transaction –comments –hex-blob –dump-date –no-autocommit –all-databases

—–
RESET SLAVE;
START SLAVE;