[RESOLU] Problème de mise en place d'une réplication serveur Master / Slave PhpMyAdmin

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Problème de mise en place d'une réplication serveur Master / Slave PhpMyAdmin

Re: Problème de mise en place d'une réplication serveur Master / Slave PhpMyAdmin

par gadje » 28 mars 2019, 17:06

Hello, j'ai réglé mon problème, effectivement du à un problème ce My.ini.
Merci.
Peut passer en "Résolu"

Re: Problème de mise en place d'une réplication serveur Master / Slave PhpMyAdmin

par saveus » 19 mars 2019, 13:10

2 conseil préalable qui ne vont pas résoudre le problème :
- default-storage-engine = MYISAM
si tu n'as pas de contrainte particulière passe ta base en innodb.
car si la base est incoherante sur un serveur mysql c'est deja pas simple a réparer.
si en plus la database est répliqué via un système master/slave , tu est bon pour y passer la journée a remettre en marche.

- utilise un client mysql "lourd" pour faire tes "show master status;"
tel que : https://www.mysql.com/products/workbench/


sinon sur le master la base a répliquer n'est pas défini :
binlog_do_db =ma_database

avec un "show master status;" temps que tu n'as pas un résultat du type :

*************************** 1. row ***************************
File: master-bin.000002
Position: 1307
Binlog_Do_DB: test
Binlog_Ignore_DB: manual, mysql
Executed_Gtid_Set: 3E11FA47-71CA-11E1-9E33-C80AA9429562:1-5
1 row in set (0.00 sec)



le problème est surement un pb de conf du my.ini

Re: Problème de mise en place d'une réplication serveur Master / Slave PhpMyAdmin

par gadje » 19 mars 2019, 11:00

Salut,
J'ai regardé la procédure que tu m'as indiqué, elle concerne Nunux, hors je suis sous Windows server 2012 R2.
Ce n'est pas gênant en soit, je peux l'adapter à ma problématique. J'avais bien configuré les fichiers my.ini sur mes 2 serveurs mais rien.

Config My.ini Serveur maitre :
[client]
port = 3306

[mysqld]
#Path to installation directory. All paths are usually resolved relative to this.
basedir = "C:/Program Files (x86)/EasyPHP-Devserver-17/eds-binaries/dbserver/mysql5717x86x180612122305/"

#Path to the database root
datadir = "C:/Program Files (x86)/EasyPHP-Devserver-17/eds-binaries/dbserver/mysql5717x86x180612122305/data/"

# The default storage engine that will be used when create new tables
default-storage-engine = MYISAM

#bind-address = 127.0.0.1
server_id = 1
log_bin = "C:/Program Files (x86)/EasyPHP-Devserver-17/eds-binaries/dbserver/mysql5717x86x180612122305/log_bin/mysql-bin.log"
socket = "C:/Program Files (x86)/EasyPHP-Devserver-17/eds-binaries/dbserver/mysql5717x86x180612122305/mysql.sock"
log_error = "C:/Program Files (x86)/EasyPHP-Devserver-17/eds-binaries/dbserver/mysql5717x86x180612122305/data/mysql_error.log"

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

Config My.ini Serveur esclave :

; Example MySQL config file for medium systems.
;
; This is for a large system with memory of 1G-2G where the system runs mainly
; MySQL.
;
; MySQL programs look for option files in a set of
; locations which depend on the deployment platform.
; You can copy this option file to one of those
; locations. For information about these locations, see:
; http://dev.mysql.com/doc/mysql/en/option-files.html
;
; In this file, you can use all long options that a program supports.
; If you want to know which options a program supports, run the program
; with the "--help" option.

; The following options will be passed to all MySQL clients
[client]
;password = your_password
port = 3306
socket = /tmp/mysql.sock

; Here follows entries for some specific programs

; The MySQL server
[wampmysqld64]
;skip-grant-tables
default_authentication_plugin=mysql_native_password
port = 3306
socket = /tmp/mysql.sock
key_buffer_size = 256M
max_allowed_packet = 1M

;Added to reduce memory used (minimum is 400)
table_definition_cache = 600

sort_buffer_size = 2M
net_buffer_length = 8K
read_buffer_size = 2M
read_rnd_buffer_size = 2M
myisam_sort_buffer_size = 64M
;Path to mysql install directory
basedir="c:/wamp64/bin/mysql/mysql5.7.24"
log-error="c:/wamp64/logs/mysql.log"
;Verbosity Value 1 Errors only, 2 Errors and warnings , 3 Errors, warnings, and notes
log_error_verbosity=2
;Path to data directory
datadir="c:/wamp64/bin/mysql/mysql5.7.24/data"

;Path to the language
;See Documentation:
; http://dev.mysql.com/doc/refman/5.7/en/ ... guage.html
lc-messages-dir="c:/wamp64/bin/mysql/mysql5.7.24/share"
lc-messages=fr_FR

; The default storage engine that will be used when create new tables
default-storage-engine=MYISAM
; New for MySQL 5.6 default_tmp_storage_engine if skip-innodb enable
; default_tmp_storage_engine=MYISAM

;To avoid warning messages
secure_file_priv="c:/wamp64/tmp"
skip-ssl

explicit_defaults_for_timestamp=true

; Set the SQL mode to strict
;sql-mode=""
;sql-mode="NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES"
sql-mode="STRICT_ALL_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ZERO_DATE,NO_ZERO_IN_DATE,NO_AUTO_CREATE_USER"

; Don't listen on a TCP/IP port at all. This can be a security enhancement,
; if all processes that need to connect to mysqld run on the same host.
; All interaction with mysqld must be made via Unix sockets or named pipes.
; Note that using this option without enabling named pipes on Windows
; (via the "enable-named-pipe" option) will render mysqld useless!
;
;skip-networking

; Disable Federated by default
skip-federated

; Replication Master Server (default)
; binary logging is required for replication
;log-bin=mysql-bin

; binary logging format - mixed recommended
;binlog_format=mixed

; required unique id between 1 and 2^32 - 1
; defaults to 1 if master-host is not set
; but will not function as a master if omitted
server-id = 240

; Replication Slave (comment out master section to use this)

; New for MySQL 5.6 if no slave
skip-slave-start

;
; To configure this host as a replication slave, you can choose between
; two methods :
;
; 1) Use the CHANGE MASTER TO command (fully described in our manual) -
; the syntax is:
;
; CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>,
; MASTER_USER=<user>, MASTER_PASSWORD=<password> ;
;
; where you replace <host>, <user>, <password> by quoted strings and
; <port> by the master's port number (3306 by default).
;
; Example:
;
; CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,
; MASTER_USER='joe', MASTER_PASSWORD='secret';
;
; OR
;
; 2) Set the variables below. However, in case you choose this method, then
; start replication for the first time (even unsuccessfully, for example
; if you mistyped the password in master-password and the slave fails to
; connect), the slave will create a master.info file, and any later
; change in this file to the variables' values below will be ignored and
; overridden by the content of the master.info file, unless you shutdown
; the slave server, delete master.info and restart the slaver server.
; For that reason, you may want to leave the lines below untouched
; (commented) and instead use CHANGE MASTER TO (see above)
;
; required unique id between 2 and 2^32 - 1
; (and different from the master)
; defaults to 2 if master-host is set
; but will not function as a slave if omitted
;server-id = 2
;
; The replication master for this slave - required
;master-host = <hostname>
;
; The username the slave will use for authentication when connecting
; to the master - required
;master-user = <username>
;
; The password the slave will authenticate with when connecting to
; the master - required
;master-password = <password>
;
; The port the master is listening on.
; optional - defaults to 3306
;master-port = <port>
;
; binary logging - not required for slaves, but recommended
;log-bin=mysql-bin

; Point the following paths to different dedicated disks
;tmpdir = /tmp/
;log-update = /path-to-dedicated-directory/hostname

; The InnoDB tablespace encryption feature relies on the keyring_file
; plugin for encryption key management, and the keyring_file plugin
; must be loaded prior to storage engine initialization to facilitate
; InnoDB recovery for encrypted tables. If you do not want to load the
; keyring_file plugin at server startup, specify an empty string.
early-plugin-load=""

;innodb_data_home_dir = C:/mysql/data/
innodb_data_file_path = ibdata1:12M:autoextend
;innodb_log_group_home_dir = C:/mysql/data/
;innodb_log_arch_dir = C:/mysql/data/
; You can set .._buffer_pool_size up to 50 - 80 %
; of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 256M
; Set .._log_file_size to 25 % of buffer pool size
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
innodb_flush_method=normal

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
; Remove the next comment character if you are not familiar with SQL
;safe-updates

[isamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer_size = 2M
write_buffer_size = 2M

[myisamchk]
key_buffer_size = 20M
sort_buffer_size_size = 20M
read_buffer_size = 2M
write_buffer_size = 2M

[mysqlhotcopy]
interactive-timeout

[mysqld]
default_authentication_plugin=mysql_native_password
port = 3306

Re: Problème de mise en place d'une réplication serveur Master / Slave PhpMyAdmin

par saveus » 19 mars 2019, 01:33

hello
vu que les message d'erreur sur les "SHOW MASTER STATUS" ne retourne rien.
il semble que la réplication ne sois tout simplement pas configuré dans mysql.

https://www.digitalocean.com/community/ ... n-in-mysql

Problème de mise en place d'une réplication serveur Master / Slave PhpMyAdmin

par gadje » 18 mars 2019, 12:34

Bonjour à tout(e)s,
comme indiqué dans le titre je suis dans l'impossibilité de répliquer mon serveur master vers mon slave. Je ne rencontre pas de problème particulier lors de sa mise en place. Je comprends que le problème se situe au niveau de la structure des données mais je ne sais pas trop comment y remédier. :oops:
Si une bonne âme avait le temps de regarder de quoi il retourne, ce serait sympa.
je mets le code de l'erreur afin que vous puissiez l'étudier :

Warning in .\libraries\classes\DatabaseInterface.php#319
Illegal offset type

Backtrace

.\libraries\classes\DatabaseInterface.php#1784: PhpMyAdmin\DatabaseInterface->tryQuery(
string 'SHOW MASTER STATUS',
,
integer 0,
boolean false,
)
.\libraries\classes\Replication.php#164: PhpMyAdmin\DatabaseInterface->fetchResult(
string 'SHOW MASTER STATUS',
NULL,
NULL,
,
)
.\libraries\classes\ReplicationGui.php#997: PhpMyAdmin\Replication::slaveBinLogMaster()
.\libraries\classes\ReplicationGui.php#916: PhpMyAdmin\ReplicationGui::handleRequestForSlaveChangeMaster()
.\server_replication.php#52: PhpMyAdmin\ReplicationGui::handleControlRequest()
Warning in .\libraries\classes\Dbi\DbiMysqli.php#213
mysqli_query() expects parameter 1 to be mysqli, null given

Backtrace

.\libraries\classes\Dbi\DbiMysqli.php#213: mysqli_query(
NULL,
string 'SHOW MASTER STATUS',
integer 0,
)
.\libraries\classes\DatabaseInterface.php#319: PhpMyAdmin\Dbi\DbiMysqli->realQuery(
string 'SHOW MASTER STATUS',
NULL,
integer 0,
)
.\libraries\classes\DatabaseInterface.php#1784: PhpMyAdmin\DatabaseInterface->tryQuery(
string 'SHOW MASTER STATUS',
,
integer 0,
boolean false,
)
.\libraries\classes\Replication.php#164: PhpMyAdmin\DatabaseInterface->fetchResult(
string 'SHOW MASTER STATUS',
NULL,
NULL,
,
)
.\libraries\classes\ReplicationGui.php#997: PhpMyAdmin\Replication::slaveBinLogMaster()
.\libraries\classes\ReplicationGui.php#916: PhpMyAdmin\ReplicationGui::handleRequestForSlaveChangeMaster()
.\server_replication.php#52: PhpMyAdmin\ReplicationGui::handleControlRequest()
Warning in .\libraries\classes\Dbi\DbiMysqli.php#510
mysqli_num_fields() expects parameter 1 to be mysqli_result, null given

Backtrace

.\libraries\classes\Dbi\DbiMysqli.php#510: mysqli_num_fields(NULL)
.\libraries\classes\DatabaseInterface.php#2812: PhpMyAdmin\Dbi\DbiMysqli->numFields(NULL)
.\libraries\classes\DatabaseInterface.php#1794: PhpMyAdmin\DatabaseInterface->numFields(NULL)
.\libraries\classes\Replication.php#164: PhpMyAdmin\DatabaseInterface->fetchResult(
string 'SHOW MASTER STATUS',
NULL,
NULL,
,
)
.\libraries\classes\ReplicationGui.php#997: PhpMyAdmin\Replication::slaveBinLogMaster()
.\libraries\classes\ReplicationGui.php#916: PhpMyAdmin\ReplicationGui::handleRequestForSlaveChangeMaster()
.\server_replication.php#52: PhpMyAdmin\ReplicationGui::handleControlRequest()
Warning in .\libraries\classes\Dbi\DbiMysqli.php#250
mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given

Backtrace

.\libraries\classes\Dbi\DbiMysqli.php#250: mysqli_fetch_array(
NULL,
integer 1,
)
.\libraries\classes\DatabaseInterface.php#2579: PhpMyAdmin\Dbi\DbiMysqli->fetchAssoc(NULL)
.\libraries\classes\DatabaseInterface.php#1805: PhpMyAdmin\DatabaseInterface->fetchAssoc(NULL)
.\libraries\classes\Replication.php#164: PhpMyAdmin\DatabaseInterface->fetchResult(
string 'SHOW MASTER STATUS',
NULL,
NULL,
,
)
.\libraries\classes\ReplicationGui.php#997: PhpMyAdmin\Replication::slaveBinLogMaster()
.\libraries\classes\ReplicationGui.php#916: PhpMyAdmin\ReplicationGui::handleRequestForSlaveChangeMaster()
.\server_replication.php#52: PhpMyAdmin\ReplicationGui::handleControlRequest()

Merci d'avance.
Bonne journée