Mysql
De Admin -- TALEVAS.
Version du 22 février 2008 à 16:38 par Admin (discuter | contributions)
MYSQL
désactiver les logs binaires qui prennent plein de place pour rien sur une machine en prod.
vim /etc/mysql/my.cnf
commenter la ligne log-bin et la suivante.
Déplacer le répertoire de stockage des bases de données.
cp -rp /var/lib/mysql /home (par exemple) vim /etc/mysql/my.cnf
modifier la ligne "datadir"
#datadir = /var/lib/mysql datadir = /home/mysql
mysqladmin -u root flush-privileges password ******** --socket=/var/run/mysqld/mysqld-ns37682.sock
connection en local
mysql -u root -p******* -E --socket=/var/run/mysqld/mysqld-ns37682.sock user password -E => presentation à la vertical plutôt qu'a l'horizontal --socket => permet de prendre un autre service que celui par defaut
replication
la doc sur le site de mysql => [1]
On lock les tables en écriture
mysql> FLUSH TABLES WITH READ LOCK;
On lance le dump de toutes les données.
mysqldump -u USER -p****** -A > /PATH/TO/DUMPFILE
On récupère la position du master
mysql> SHOW MASTER STATUS;
*************************** 1. row ***************************
File: ns20587.000012
Position: 8330324
Binlog_Do_DB:
Binlog_Ignore_DB:
1 row in set (0.00 sec)
autre présentations en fonction de la façon de se loguer ( -E )
mysql> SHOW MASTER STATUS; +----------------+----------+--------------+------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +----------------+----------+--------------+------------------+ | ns20587.000012 | 8707042 | | | +----------------+----------+--------------+------------------+
On unlock les tables
mysql> UNLOCK TABLES;
On restaure les données sur le slave après les y avoir transféré.
mysql -u USER -p******** < /PATH/TO/DUMPFILE
On donne les au slave les instructions pour qu'il aille chercher sur le master les infos dans les fichiers bin.
mysql> CHANGE MASTER TO MASTER_HOST='HOSTNAME', MASTER_USER='USER', MASTER_PASSWORD='********', MASTER_LOG_FILE='FILE', MASTER_LOG_POS=POSITION;
On peu ensuite vérifier que le slave se synchronise bien (l'autre vue sans le -E est illisible pour moi ...)
mysql> show slave status;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: vpn.talevas.com
Master_User: root
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: ns20587.000012
Read_Master_Log_Pos: 8726915
Relay_Log_File: mysqld-relay-bin.000008
Relay_Log_Pos: 1508334
Relay_Master_Log_File: ns20587.000012
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 8726915
Relay_Log_Space: 1508334
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0