« MYSQL » : différence entre les versions
De TwisterWiki
Aucun résumé des modifications |
|||
(21 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
== Réaliser des dumps == | == Réaliser des dumps == | ||
mysqldump --extended-insert=FALSE --add-drop-table --user=$USER --password=$PASS $DATABASE > dump.sql | <source lang="bash"> | ||
mysqldump --extended-insert=FALSE --add-drop-table --no-data --user=$USER --password=$PASS $DATABASE > dump_schema.sql | mysqldump --extended-insert=FALSE --add-drop-table --triggers --routines --add-drop-database --user=$USER --password=$PASS $DATABASE > dump.sql | ||
mysqldump --extended-insert=FALSE --add-drop-table --triggers --routines --add-drop-database --no-data --user=$USER --password=$PASS $DATABASE > dump_schema.sql | |||
mysqldump --opt --triggers --routines --add-drop-database --user=$USER --password=$PASS $DATABASE > dump.sql | |||
</source> | |||
<source lang="mysql"> | |||
mysqldump --defaults-file=/etc/mysql/debian.cnf --master-data --add-drop-table --triggers --routines --all-databases |ssh {SLAVE_SERVER} "mysql --defaults-file=/etc/mysql/debian.cnf" | |||
</source> | |||
* Backup de tables commençant par une chaine de caractère | |||
<source lang="mysql"> | |||
mysqldump -u USER -p DATABASE $(mysql -u USER -p -D DATABASE -Bse "show tables like 'PREFIX%'") > dump_file.sql | |||
</source> | |||
== Basculer un slave en master et le master en slave == | == Basculer un slave en master et le master en slave == | ||
;faire passer le master en "read only" | ;faire passer le master en "read only" | ||
<source lang="mysql"> | |||
mysql -u root -p | |||
use DATABASE; | |||
flush tables with read lock; | |||
</source> | |||
;stopper le slave | ;stopper le slave | ||
<source lang="mysql"> | |||
mysql -u root -p | |||
stop SLAVE; | |||
</source> | |||
;noter la position du serveur en slave | ;noter la position du serveur en slave | ||
<source lang="mysql"> | |||
mysql -u root -p | |||
show master status\G | |||
</source> | |||
;sur le master (passage en slave) | ;sur le master (passage en slave) | ||
<source lang="mysql"> | |||
CHANGE MASTER TO MASTER_HOST='', MASTER_USER='replic', MASTER_PASSWORD='PASSWORD', MASTER_PORT=3306 ,MASTER_LOG_FILE='FILE', MASTER_LOG_POS=POS; | |||
</source> | |||
;repasser le slave en "read write" | ;repasser le slave en "read write" | ||
<source lang="mysql"> | |||
use DATABASE; | |||
unlock tables; | |||
;Une fois toute ces opération réalisée le master est devenu le slave, Il reste à supprimer le fichier /var/lib/mysql/master.info | ;Une fois toute ces opération réalisée le master est devenu le slave, Il reste à supprimer le fichier /var/lib/mysql/master.info | ||
<source lang="mysql"> | |||
mysql -u root -p | |||
stop SLAVE | |||
rm /var/lib/mysql/master.info | |||
mysql -u root -p | |||
start SLAVE | |||
</source> | |||
== [http://www.dj-j.net/waka/Linux:Administration_MySQL Documentation sur MySQL]== | == [http://www.dj-j.net/waka/Linux:Administration_MySQL Documentation sur MySQL]== | ||
Ligne 37 : | Ligne 69 : | ||
== Identifier les tables en innodb == | == Identifier les tables en innodb == | ||
<source lang="mysql"> | |||
use information_schema | use information_schema | ||
SELECT CONCAT(`TABLE_SCHEMA`,".",`TABLE_NAME`) FROM TABLES WHERE ENGINE = "InnoDB"; | SELECT CONCAT(`TABLE_SCHEMA`,".",`TABLE_NAME`) FROM TABLES WHERE ENGINE = "InnoDB"; | ||
</source> | |||
== les variables MySQL== | == les variables MySQL== | ||
Ligne 68 : | Ligne 101 : | ||
+ tmp_table_size | + tmp_table_size | ||
+ ( max_connexion x (read_buffer_size + read_rnd_buffer_size + join_buffer_size + sort_buffer_size )) | + ( max_connexion x (read_buffer_size + read_rnd_buffer_size + join_buffer_size + sort_buffer_size )) | ||
== Commandes mysql utiles == | |||
=== Purge des logs binaires === | |||
<source lang="mysql"> | |||
FLUSH LOGS; | |||
RESET MASTER; | |||
</source> | |||
Ou | |||
<source lang="mysql"> | |||
PURGE BINARY LOGS TO 'mysql-bin.0002560'; | |||
PURGE BINARY LOGS BEFORE '2013-06-13 22:46:26'; | |||
</source> | |||
=== Lister les index === | |||
<source lang="mysql"> | |||
SHOW INDEX FROM table.db; | |||
SHOW INDEX FROM table [FROM db]; | |||
</source> | |||
=== créer un index === | |||
<source lang="mysql"> | |||
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [index_type] ON tbl_name (index_col_name,...) | |||
</source> | |||
=== Activé le logs des erreurs tels que les erreurs de connexion === | |||
<source lang="mysql"> | |||
set global log_warnings = '2'; | |||
</source> | |||
0 = pas de logs | |||
1 = activation des logs | |||
>1 = connexion annulées,et erreur d’accès (access-denied errors ) | |||
* Les erreurs sont inscritent dans /var/log/syslog | |||
[[category:Basededonnées]] | [[category:Basededonnées]] | ||
[[category:Linux]] | [[category:Linux]] |
Dernière version du 12 juin 2014 à 07:16
Réaliser des dumps
mysqldump --extended-insert=FALSE --add-drop-table --triggers --routines --add-drop-database --user=$USER --password=$PASS $DATABASE > dump.sql
mysqldump --extended-insert=FALSE --add-drop-table --triggers --routines --add-drop-database --no-data --user=$USER --password=$PASS $DATABASE > dump_schema.sql
mysqldump --opt --triggers --routines --add-drop-database --user=$USER --password=$PASS $DATABASE > dump.sql
mysqldump --defaults-file=/etc/mysql/debian.cnf --master-data --add-drop-table --triggers --routines --all-databases |ssh {SLAVE_SERVER} "mysql --defaults-file=/etc/mysql/debian.cnf"
- Backup de tables commençant par une chaine de caractère
mysqldump -u USER -p DATABASE $(mysql -u USER -p -D DATABASE -Bse "show tables like 'PREFIX%'") > dump_file.sql
Basculer un slave en master et le master en slave
- faire passer le master en "read only"
mysql -u root -p
use DATABASE;
flush tables with read lock;
- stopper le slave
mysql -u root -p
stop SLAVE;
- noter la position du serveur en slave
mysql -u root -p
show master status\G
- sur le master (passage en slave)
CHANGE MASTER TO MASTER_HOST='', MASTER_USER='replic', MASTER_PASSWORD='PASSWORD', MASTER_PORT=3306 ,MASTER_LOG_FILE='FILE', MASTER_LOG_POS=POS;
- repasser le slave en "read write"
use DATABASE;
unlock tables;
;Une fois toute ces opération réalisée le master est devenu le slave, Il reste à supprimer le fichier /var/lib/mysql/master.info
<source lang="mysql">
mysql -u root -p
stop SLAVE
rm /var/lib/mysql/master.info
mysql -u root -p
start SLAVE
Documentation sur MySQL
Identifier les tables en innodb
use information_schema
SELECT CONCAT(`TABLE_SCHEMA`,".",`TABLE_NAME`) FROM TABLES WHERE ENGINE = "InnoDB";
les variables MySQL
- Les globales
- key_buffer
- query_cache_size
- query_cache_limit
- table_cache
- open_files_limit
- max_connections
- innodb_buffer_pool_size
- innodb_log_buffer_size
- max_heap_table_size
- tmp_table_size
- les variables de sessions (à multiplié par le max_connection)
- read_buffer_size (par défaut à 128k)
- read_rnd_buffer_size (par défaut à 256k)
- join_buffer_size (par défaut à 256k)
- sort_buffer_size (par défaut à 2M)
Calcul de la quantité de mémoire utilisée par mysql
key_buffer + query_cache_size + innodb_buffer_pool_size + innodb_log_buffer_size + max_heap_table_size + tmp_table_size + ( max_connexion x (read_buffer_size + read_rnd_buffer_size + join_buffer_size + sort_buffer_size ))
Commandes mysql utiles
Purge des logs binaires
FLUSH LOGS;
RESET MASTER;
Ou
PURGE BINARY LOGS TO 'mysql-bin.0002560';
PURGE BINARY LOGS BEFORE '2013-06-13 22:46:26';
Lister les index
SHOW INDEX FROM table.db;
SHOW INDEX FROM table [FROM db];
créer un index
CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name [index_type] ON tbl_name (index_col_name,...)
Activé le logs des erreurs tels que les erreurs de connexion
set global log_warnings = '2';
0 = pas de logs 1 = activation des logs >1 = connexion annulées,et erreur d’accès (access-denied errors )
- Les erreurs sont inscritent dans /var/log/syslog