===== Introduction =====
Suite au rachat de Mysql pour Oracle, Mariadb est devenu le fork de Mysql 100% compatible.
[[https://mariadb.org/en/|MariaDB]]
===== installation mariadb =====
ajouter les sources apt-suivantes dans le fichier /etc/apt/sources.list
# MariaDB
deb http://ftp.igh.cnrs.fr/pub/mariadb/repo/5.5/debian wheezy main
deb-src http://ftp.igh.cnrs.fr/pub/mariadb/repo/5.5/debian wheezy main
et autoriser la clé du cnrs pour APT
#apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
en met à jour les dêpots
#apt-get update
et on installe mariadb
#apt-get install mariadb-client mariadb-server
===== parametrage de mariadb =====
Voici la séquence à suivre pour paraméter mariadb en mode replication
/etc/init.d/mysql stop
rm /var/lib/mysql/ib_logfile*
editer /etc/mysql/my.cnf
[[client]]
port = 3306
socket = /var/run/mysqld/mysqld.sock
default-character-set = utf8
[[mysqld_safe]]
socket = /var/run/mysqld/mysqld.sock
nice = 0
default-character-set=utf8
[[mysqld]]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc_messages_dir = /usr/share/mysql
lc_messages = en_US
skip-external-locking
max_connections = 100
connect_timeout = 5
wait_timeout = 600
max_allowed_packet = 16M
thread_cache_size = 128
sort_buffer_size = 4M
bulk_insert_buffer_size = 16M
tmp_table_size = 32M
max_heap_table_size = 32M
myisam_recover = BACKUP
key_buffer_size = 128M
table_open_cache = 400
myisam_sort_buffer_size = 512M
concurrent_insert = 2
read_buffer_size = 2M
read_rnd_buffer_size = 1M
query_cache_limit = 128K
query_cache_size = 64M
log_warnings = 2
slow_query_log_file = /var/log/mysql/mariadb-slow.log
long_query_time = 1
#general_log_file = /var/log/mysql/mysql.log
#general_log = 1
log_slow_verbosity = query_plan
log_bin = /var/log/mysql/mariadb-bin
log_bin_index = /var/log/mysql/mariadb-bin.index
expire_logs_days = 10
max_binlog_size = 100M
default_storage_engine = InnoDB
innodb_log_file_size = 50M
innodb_buffer_pool_size = 256M
innodb_log_buffer_size = 8M
innodb_file_per_table = 1
innodb_open_files = 400
innodb_io_capacity = 400
innodb_flush_method = O_DIRECT
[[mysqldump]]
quick
quote-names
max_allowed_packet = 16M
[[mysql]]
[[isamchk]]
key_buffer = 16M
!includedir /etc/mysql/conf.d/
===== Configuration pour la réplication =====
Configurer l'utilisateur pour la replication sur le serveur maitre:
mysql -u root -p
GRANT REPLICATION SLAVE ON *.* to replicator@'%' IDENTIFIED BY 'Nimb0!mysql';
GRANT SUPER, RELOAD, SELECT ON *.* TO replicator@'%'IDENTIFIED BY 'Nimb0!mysql';
FLUSH PRIVILEGES;
On interroge le serveur mysql pour récuper deux valeurs importantes: File et Position
mysql -u root -p
SHOW MASTER STATUS;
Si vous devez charger des données, faites le maintenant, ensuite
==== Sur le slave ====
Modifier le fichier: /etc/mysql/my.cnf
server-id = 2
#log_bin = /var/log/mysql/mysql-bin.log
report_host =
Configurer l'utilisateur pour la replication sur le serveur esclave:
mysql -u root -p
GRANT REPLICATION SLAVE ON *.* to replicator@'%' IDENTIFIED BY 'Nimb0!mysql';
GRANT SUPER, RELOAD, SELECT ON *.* TO replicator@'%'IDENTIFIED BY 'Nimb0!mysql';
FLUSH PRIVILEGES;
http://www.yerbynet.com/Cours/MySQLsynchro.pdf
http://www.networklife.net/2009/06/replication-masterslave-temps-reel-dune-base-mysql/