MySQL Replication

chour@mih-fr
Messages : 732
Inscription : ven. 12 janv. 2018 17:44

MySQL Replication

Message par chour@mih-fr »

Je crois que tu aurais du mal à rentrer dans les centres techniques de la BNPP :D

Sinon, effectivement je suis allé faire un tour au niveau des privilèges, et je n'avais que SUPER et REPLICATION SLAVE.

J'ai rajouté au cas où REPLICATION CLIENT, mais le SELECT et RELOAD il ne me semble pas les avoir vu. Je vais checker ça.

Dans tous les cas, merci énormément nidosaur de m'épauler ;)

Edit : effectivement mes droits étaient bancales. Pourtant j'ai joué (enfin il me semble) les mêmes GRANT de part et d'autres.
J'ai fait un flush privileges puis un stop/start slave, normalement avec ça le slave devrait être à jour !
chour@mih-fr
Messages : 732
Inscription : ven. 12 janv. 2018 17:44

MySQL Replication

Message par chour@mih-fr »

Les logs du slave après le stop/start slave :
091125 17:25:13 [ERROR] Error reading packet from server: Lost connection to MySQL server during query ( server_errno=2013)
091125 17:25:13 [Note] Slave I/O thread killed while reading event
091125 17:25:13 [Note] Slave I/O thread exiting, read up to log 'mysql-bin.000006', position 106
091125 17:25:13 [Note] Error reading relay log event: slave SQL thread was killed
091125 17:25:19 [Note] Slave I/O thread: connected to master 'slave_user@10.254.133.241:3306',replication started in log 'mysql-bin.000006' at position 106
091125 17:25:20 [Note] Slave SQL thread initialized, starting replication in log 'mysql-bin.000006' at position 106, relay log '.\pars03100504-relay-bin.000027' position: 251
nidosaur
Messages : 936
Inscription : ven. 12 janv. 2018 17:44

MySQL Replication

Message par nidosaur »

ca a l air bon

show slave status\G; sur le slave
show master status\G; sur le master

nidosaur
Messages : 936
Inscription : ven. 12 janv. 2018 17:44

MySQL Replication

Message par nidosaur »

Si vous envisagez d'utiliser LOAD TABLE FROM MASTER ou LOAD DATA FROM MASTER sur l'esclave, vous devez donner les droits supplémentaires suivants :
*

Donnez le droit de SUPER et RELOAD.
*

Donnez le droit de SELECT pour toutes les tables que vous voulez charger. Toutes les tables maîtres dans lesquelles l'esclave ne pourra pas utiliser SELECT seront ignorées par LOAD DATA FROM MASTER.



tout est bien expliqué la
http://dev.mysql.com/doc/refman/5.0/fr/ ... howto.html
nidosaur
Messages : 936
Inscription : ven. 12 janv. 2018 17:44

MySQL Replication

Message par nidosaur »

Vous pouvez uassi lancer l'esclave avec l'option --log-warnings. De cette manière, vous aurez plus de détails sur les problèmes que l'esclave rencontrera (problèmes réseau, d'identification, etc.)

chour@mih-fr
Messages : 732
Inscription : ven. 12 janv. 2018 17:44

MySQL Replication

Message par chour@mih-fr »

Si vous envisagez d'utiliser LOAD TABLE FROM MASTER ou LOAD DATA FROM MASTER sur l'esclave, vous devez donner les droits supplémentaires suivants :
*

Donnez le droit de SUPER et RELOAD.
*

Donnez le droit de SELECT pour toutes les tables que vous voulez charger. Toutes les tables maîtres dans lesquelles l'esclave ne pourra pas utiliser SELECT seront ignorées par LOAD DATA FROM MASTER.



tout est bien expliqué la
http://dev.mysql.com/doc/refman/5.0/fr/ ... howto.html
Ca veut dire qu'il faut que je rajoute dans la table mysql.db autant de ligne pour mon user slave_user par base de données que je veux répliquer ?
Car pour l'instant, la seule trace de mon user slave_user se trouve dans la table mysql.user, avec les droits SELECT, RELOAD, SUPER, REPLICATION SLAVE & REPLICATION CLIENT.

Edit : j'ai donc rajouté ces fameux droits sur les 2 serveurs (au cas où). Je vais suivre ça, mais ça a l'air pas trop mal je pense.
nidosaur
Messages : 936
Inscription : ven. 12 janv. 2018 17:44

MySQL Replication

Message par nidosaur »


Ca veut dire qu'il faut que je rajoute dans la table mysql.db autant de ligne pour mon user slave_user par base de données que je veux répliquer ?
heu je dirais non
Car pour l'instant, la seule trace de mon user slave_user se trouve dans la table mysql.user, avec les droits SELECT, RELOAD, SUPER, REPLICATION SLAVE & REPLICATION CLIENT.

Edit : j'ai donc rajouté ces fameux droits sur les 2 serveurs (au cas où). Je vais suivre ça, mais ça a l'air pas trop mal je pense.
j'ai l impression qu'on derive, tu as juste a créer un user slave ayant les droits select reload super et replication_slave sur le master

aprés pour ce qui est des bases que tu veux répliquer ou pas, ca se fait ds le my.cnf

si j'ai le temps je ferais une repli mysql entre 2 linux et je te donnerais accés distant (mais j ai pas trop de temps en ce moment :( )
chour@mih-fr
Messages : 732
Inscription : ven. 12 janv. 2018 17:44

MySQL Replication

Message par chour@mih-fr »

Effectivement, je pense que je dérive un peu.
J'en suis arrivé à créer sur mon serveur slave le user "slave_user", pour lequel j'ai donné des droits sur mes db.
Mais au final, ce user sur le server slave est superflu, non ?

Sur le master, voici ce que j'ai :
- dans la table mysql.user, le user slave_user avec les droits suivants : SELECT, RELOAD, SUPER, REPLICATION SLAVE, REPLICATION CLIENT
- dans la table mysql.db, autant de couple db/user que j'ai de db à répliquer via le user slave_user, c'est à dire 3. Comme host : %, et comme privilèges, SELECT.
Sur le slave, j'ai exactement la même chose.

Les fichiers de confs :
- master :
[mysqld]

# The TCP/IP Port the MySQL Server will listen on
port=3306

#Path to installation directory. All paths are usually resolved relative to this.
basedir="D:/Apps/MySQL Server 5.1/"

#Path to the database root
datadir="D:/Data/MySQL Server 5.1/"

########
#
log-bin="D:/Data/MySQL Server 5.1/mysql-bin.log"
server-id=1
binlog-do-db=wikidb,dotclear,piwik
#
########
- slave :
[mysqld]

# The TCP/IP Port the MySQL Server will listen on
port=3306

####
#
server-id=2
master-host=10.254.133.241
master-user=slave_user
master-password=Password01
master-connect-retry=60
replicate-do-db=wikidb,dotclear,piwik
#
####

chour@mih-fr
Messages : 732
Inscription : ven. 12 janv. 2018 17:44

MySQL Replication

Message par chour@mih-fr »

Plutôt que de m'entêter dans cette réplication là, je vais tout reprendre de zéro, et faire l'inverse. Hier, j'avais un serveur Apache et un serveur MySQL distincts. Comme les perfs semblent être meilleures quand Apache et MySQL sont sur la même machine, je vais donc répliquer mon MySQL installée sur mon serveur Apache sur mon second serveur.
Avatar de l’utilisateur
Ryu_wm
Messages : 8166
Inscription : ven. 12 janv. 2018 17:44

MySQL Replication

Message par Ryu_wm »

moi j'ai testé la semaine derniere un serveur web d'un coté d'internet et un serveur SQL d'un autre coté
ben cpa joyeux, les transactions sont tellement lourdes qu'elles consomment trop de BP donc les perfs sont pires que si les deux démons etaient sur la meme ( petite ) machine !
Kronick
Messages : 3372
Inscription : ven. 12 janv. 2018 17:44

MySQL Replication

Message par Kronick »

au niveau des perfs, j'ai en réplication deux serveurs qui ne sont pas dans le même datacenter, pour laquelle il ya une base de 30go, et je dois dire que ça dépote (seconds behind master = 0 :) )
chour@mih-fr
Messages : 732
Inscription : ven. 12 janv. 2018 17:44

MySQL Replication

Message par chour@mih-fr »

Moi j'ai tout simplement abandonné, ça n'a jamais fonctionné :(
Soit j'ai du m'y prendre comme un manche, soit je n'ai pas tout compris, soit MySQL + Windows ne font pas bon ménage, ou les 3 à la fois.

J'attends de récupérer d'autres vieux coucous et je tenterais un MySQL Cluster !
Avatar de l’utilisateur
Ryu_wm
Messages : 8166
Inscription : ven. 12 janv. 2018 17:44

MySQL Replication

Message par Ryu_wm »

soit MySQL + Windows ne font pas bon ménage,
j'en viens à la meme conclusion, nombre de parametres que j'ai pu lire dans la doc MySQL empechent tout simplement le svc Mysql de se lancer sous windows
Kronick
Messages : 3372
Inscription : ven. 12 janv. 2018 17:44

MySQL Replication

Message par Kronick »

tu peux l'aider alors ? :D
chour@mih-fr
Messages : 732
Inscription : ven. 12 janv. 2018 17:44

MySQL Replication

Message par chour@mih-fr »

Ca fait belle lurette que j'ai laissé tomber la réplication, malheureusement. Mais avec un projet dont je suis l'architecte, on tourne sous MySQL, mais seulement 200Mo de db :/ Exit alors les clusters mysql & co, ce n'est pas cette fois-ci que je ferais mumuse ... Cependant, je testerais bien volontiers une réplication entre un Linux (rhel5) et toujours un de mes vieux Windows :D Je tiens au jus ;)
Répondre