MYSQL

PB SQL FAILOVER

image.png

image.png

image.png

Clic droit --> Failover…

image.png

Next

image.png

Next

image.png

Finish

image.png

image.png

image.png

Vérifier que le 1 est bien passé en Primary ainsi que le 2 en Secondary

image.png

Commandes General

 

Poids base de doonnées

SELECT sum( data_length + index_length) / 1024 / 1024 "Nom-de-la-base Taille en Mo" FROM information_schema.TABLES WHERE table_schema = "nom-de-base" GROUP BY table_schema;

Read permission

GRANTSELECTON DBNAME.TABLE_NAME TO USERNAME 

liste toutes les BDD

show databases;

se met sur la BDD qui nous intéresse 

Use nomdelabdd; 

Suppression de la BDD

Drop database nomdelabdd;

Création de la BDD 

Create database nomdelabdd;

Dans le cas où le compte mysqldump n'a pas les droits de restauration de dump

grant all privileges on *.* to mysqldump@localhost;

Restauration du dump dans la BDD

mysql -u mysqldump -p "nomdelabdd" < "/production/mysql_dump/nomdelabdd.sql"

Vérification de la bonne restauration du dump

ls -alsh /production/mysql/nomdelabdd/ 

Pour se connecter

mysql

Pour avoir la taille de toutes les BDD:

SELECT table_schema AS "Database",  ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS "Size (MB)"  FROM information_schema.TABLES  GROUP BY table_schema;

Pour avoir la taille de toutes les tables d'une BDD:

SELECT table_name AS "Table", ROUND(((data_length + index_length) / 1024 / 1024), 2) AS "Size (MB)" FROM information_schema.TABLES WHERE table_schema = "database_name" ORDER BY (data_length + index_length) DESC;

Reset Mot de passe Mysql:

ALTER USER 'mysqldump'@'localhost' IDENTIFIED BY 'dump';

Dump/Restore

Création de dump Mysql: 

/usr/bin/mysqldump -u mysqldump -p name | gzip -c --best > /production/mysql_dump/Save_25.sql.gz

Dezip d'un dump au format sql.gz :   

gunzip /production/mysql_dump/Save_25.sql.gz /tmp

Attention cela remplace le fichier d'origine en .sql

Affichage de tous les droits sur une BDD: 

Use name;
SELECT host,user,password,Grant_priv,Super_priv FROM mysql.user;

Restauration d'un dump Mysql avec le dump au format .sql :


show databases;     --> liste toutes les BDD
Use nomdelabdd;    --> On se met sur la BDD qui nous intéresse 
Drop database nomdelabdd;    --> Suppression de la BDD actuelle
Create database nomdelabdd;    --> Création de la BDD 
grant all privileges on *.* to mysqldump@localhost;    --> Dans le cas où le compte mysqldump n'a pas les droits de restauration de dump
mysql -u mysqldump -p nomdelabdd < /production/mysql_dump/nomdelabdd.sql     --> Restauration du dump dans la BDD nouvellement créée
ls -alsh /production/mysql/nomdelabdd/    --> Vérification de la bonne restauration du dump, voir s'il y a des éléments récents

Pour info, utiliser la commande pv lors de la restauration d'un dump afin de voir en live ce que fait la restauration:

Mysql innodb cache info

Vérifier taille Buffer Pool Size:

mysql
SELECT FORMAT (BufferPoolPages*PageSize/POWER(1024,3),2) BufferPoolDataGB FROM (SELECT variable_value BufferPoolPages FROM information_schema.global_status WHERE variable_name ='Innodb_buffer_pool_pages_total') A, (SELECT variable_value PageSize FROM information_schema.global_status WHERE variable_name ='Innodb_page_size') B;

image.png

Vérifier données en cache:

Mysql

 

SELECT FORMAT (BufferPoolPages*PageSize/POWER(1024,3),2) BufferPoolDataGB FROM (SELECT variable_value BufferPoolPages FROM information_schema.global_status WHERE variable_name ='Innodb_buffer_pool_pages_data') A, (SELECT variable_value PageSize FROM information_schema.global_status WHERE variable_name ='Innodb_page_size') B;

image.png

Vérifier % d'utilisation en cache:

 

SELECT CONCAT (FORMAT (DataPages*100.0/TotalPages,2),' %') BufferPoolDataPercentage FROM (SELECT variable_value DataPages FROM information_schema.global_status WHERE variable_name ='Innodb_buffer_pool_pages_data') A, (SELECT variable_value TotalPages FROM information_schema.global_status WHERE variable_name ='Innodb_buffer_pool_pages_total') B;

image.png


Données supplémentaires sur le cache:

SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool%';

image.png

Statut Innodb:

SHOW ENGINE INNODB STATUS;

Buffer hit ratio:

SELECT round ((P2.variable_value /P1.variable_value),4),  P2.variable_value, P1.variable_value FROM information_schema.GLOBAL_STATUS P1, information_schema.GLOBAL_STATUS P2 WHERE P1. variable_name ='innodb_buffer_pool_read_requests'ANDP2. variable_name ='innodb_buffer_pool_reads'; 

image.png

Modification du compte mysql_monitor

mysql
SHOW DATABASES;
select user, host from mysql.users;
UPDATE user SET password=PASSWORD('PASSWORD') WHERE user='mysql_monitor';

si la commande ci-dessous ne fonctionne pas

ALTER USER 'mysql_monitor' IDENTIFIED BY '************';
FLUSH PRIVILEGES;