BenMorel / mysql-replication-check

A tool to checksum a MySQL slave against its master
MIT License
7 stars 1 forks source link

Filter internal databases #4

Closed mokraemer closed 2 years ago

mokraemer commented 2 years ago

Some internal databases should always filtered out:

I suggeste changing loadTables to

function loadTables(PDO $master) {
    $filtered=['information_schema','performance_schema','mysql'];
    $databases = [];

    $statement = $master->query('SHOW DATABASES');
    while (false !== ($database = $statement->fetchColumn())) {
        if(!in_array($database,$filtered)){
          $databases[] = $database;
        }
    }

    $tables = [];

    foreach ($databases as $database) {
        $statement = $master->query("SHOW FULL TABLES FROM `$database` WHERE Table_Type != 'VIEW'");
        while (false !== $table = $statement->fetchColumn()) {
            $tables[] = $database . '.' . $table;
        }
    }

    return $tables;
}
mokraemer commented 2 years ago

bug4.txt

BenMorel commented 2 years ago

Fixed in ee9955ae196b0e2fb13c061b5e069f1bf582e2f2.