Bug 1337124
| Summary: | mysql: replication_port parameter not used | |||
|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Oyvind Albrigtsen <oalbrigt> | |
| Component: | resource-agents | Assignee: | Oyvind Albrigtsen <oalbrigt> | |
| Status: | CLOSED ERRATA | QA Contact: | cluster-qe <cluster-qe> | |
| Severity: | unspecified | Docs Contact: | ||
| Priority: | unspecified | |||
| Version: | 7.3 | CC: | agk, cluster-maint, fdinitto, mnovacek | |
| Target Milestone: | rc | |||
| Target Release: | --- | |||
| Hardware: | Unspecified | |||
| OS: | Unspecified | |||
| Whiteboard: | ||||
| Fixed In Version: | resource-agents-3.9.5-73.el7 | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | ||
| Clone Of: | ||||
| : | 1337146 (view as bug list) | Environment: | ||
| Last Closed: | 2016-11-04 00:03:15 UTC | Type: | Bug | |
| Regression: | --- | Mount Type: | --- | |
| Documentation: | --- | CRM: | ||
| Verified Versions: | Category: | --- | ||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | ||
| Cloudforms Team: | --- | Target Upstream Version: | ||
| Embargoed: | ||||
| Bug Depends On: | ||||
| Bug Blocks: | 1337146 | |||
|
Description
Oyvind Albrigtsen
2016-05-18 10:51:54 UTC
Patch working as expected. Added following patch to include metadata info that the RELOAD action is also needed for the replication user: https://github.com/ClusterLabs/resource-agents/commit/e78f106cc5edabc50eb3622ce384ed2493250ec5 Setup: - Setup replication in MariaDB and set "port=3316" in /etc/my.cnf under "[mysqld]". - Enable port 3316 in SELinux on both master and slave host: # semanage port -a -t mysqld_port_t -p tcp 3316 - Create resource # pcs resource create mysql mysql replication_user='replication_user' replication_passwd='...' --master meta notify=true Before: # mysql MariaDB [(none)]> show slave status; ... | Connecting to master | rhel7-X | replication_user | 3306 | 60 | mysqld-bin.000041 | 245 | mysqld-relay-bin.000001 | 4 | mysqld-bin.000041 | Connecting | Yes | tdb | | | | | | 0 | | 0 | 245 | 245 | None | | 0 | No | | | | | | NULL | No | 2003 | error connecting to master 'replication_user@rhel7-X:3306' - retry-time: 60 retries: 86400 message: Can't connect to MySQL server on 'rhel7-X' (111) | 0 | | | 0 | You can try to set the replication_port, but the setting is ignored. # pcs resource update mysql replication_port=3316 After: # pcs resource update mysql replication_port=3316 # mysql MariaDB [(none)]> show slave status; ... | Waiting for master to send event | rhel7-X | replication_user | 3316 | 60 | mysqld-bin.000041 | 245 | mysqld-relay-bin.000002 | 530 | mysqld-bin.000041 | Yes | Yes | tdb | | | | | | 0 | | 0 | 245 | 825 | None | | 0 | No | | | | | | 0 | No | 0 | | 0 | | | 1 | I have verified that the replication_port parameter is not ignored when changed
in resource-agents-3.9.5-81.el7.x86_64.
---
common setup:
* enable port 3307 to be used by mysql replication (ports selinux)
* setup mysql replication on port 3307 as master/master and verify that it
works correctly (mysql replication setup)
* setup cluster (pcs status)
* setup mysql resource agent as master/slave with different replication_port,
replication_passwd and replication_user and disable it (pcs resource)
before the patch (resource-agents-3.9.5-54.el7_2.10.x86_64)
===========================================================
resource is started but mysql slave uses default port and will not connect
$ pcs resource enable mysql-master
$ sleep 60
$ ssh virt-048 'mysql -u root -e "show slave status\G;"'
*************************** 1. row ***************************
Slave_IO_State: Connecting to master
Master_Host: virt-049.cluster-qe.lab.eng.brq.redhat.com
Master_User: replication_user
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: master2-bin.000738
Read_Master_Log_Pos: 245
Relay_Log_File: mysqld-relay-bin.000001
Relay_Log_Pos: 4
Relay_Master_Log_File: master2-bin.000738
Slave_IO_Running: Connecting
Slave_SQL_Running: Yes
...
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 2003
> Last_IO_Error: error connecting to master
> 'replication_user.lab.eng.brq.redhat.com:3306'
> - retry-time: 60 retries: 86400 message: Can't connect to
> MySQL server on 'virt-049.cluster-qe.lab.eng.brq.redhat.com'
> (111)
$ ssh virt-049 'mysql -u root -e "show master status\G;"'
*************************** 1. row ***************************
File: master2-bin.000738
Position: 245
Binlog_Do_DB: tdb
Binlog_Ignore_DB:
after the patch (resource-agents-3.9.5-81.el7.x86_64)
=====================================================
resource can be started and the port settings is respected
$ pcs resource enable mysql-master
$ sleep 60
$ pcs status
...
Master/Slave Set: mysql-master [mysql]
Masters: [ virt-049 ]
Slaves: [ virt-048 ]
...
$ ssh virt-048 'mysql -u root -e "show slave status\G;"' | head
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: virt-049.cluster-qe.lab.eng.brq.redhat.com
Master_User: replication_user
> Master_Port: 3307
Connect_Retry: 60
Master_Log_File: master2-bin.000735
> Read_Master_Log_Pos: 245
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 531
$ ssh virt-049 'mysql -u root -e "show master status\G;"'
*************************** 1. row ***************************
File: master2-bin.000735
> Position: 245
Binlog_Do_DB: tdb
Binlog_Ignore_DB:
>>(ports selinux)
[root@virt-048 my.cnf.d]# getenforce
Enforcing
[root@virt-048 my.cnf.d]# semanage port -a -t mysqld_port_t -p tcp 3307
[root@virt-048 my.cnf.d]# semanage port -l | grep mysqld
mysqld_port_t tcp 3307, 1186, 3306, 63132-63164
[root@virt-049 my.cnf.d]# getenforce
Enforcing
[root@virt-049 my.cnf.d]# semanage port -a -t mysqld_port_t -p tcp 3307
[root@virt-049 my.cnf.d]# semanage port -l | grep mysqld
mysqld_port_t tcp 3307, 1186, 3306, 63132-63164
>>(mysql replication setup)
[root@virt-048 my.cnf.d]# mysql -u root -e 'show slave status\G;' | head
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: virt-049.cluster-qe.lab.eng.brq.redhat.com
Master_User: replication_user
Master_Port: 3307
Connect_Retry: 60
Master_Log_File: master2-bin.000734
Read_Master_Log_Pos: 245
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 531
[root@virt-049 my.cnf.d]# mysql -u root -e 'show master status\G;'
*************************** 1. row ***************************
File: master2-bin.000734
Position: 245
Binlog_Do_DB: tdb
Binlog_Ignore_DB:
>>(pcs status)
[root@virt-049 my.cnf.d]# pcs status
Cluster name: STSRHTS7875
Last updated: Thu Sep 15 14:02:38 2016 Last change: Thu Sep 15 13:52:24 2016 by root via crm_attribute on virt-049
Stack: corosync
Current DC: virt-048 (version 1.1.13-10.el7_2.4-44eb2dd) - partition with quorum
2 nodes and 8 resources configured
Online: [ virt-048 virt-049 ]
Full list of resources:
fence-virt-048 (stonith:fence_xvm): Started virt-048
fence-virt-049 (stonith:fence_xvm): Started virt-049
Clone Set: dlm-clone [dlm]
Started: [ virt-048 virt-049 ]
Clone Set: clvmd-clone [clvmd]
Started: [ virt-048 virt-049 ]
Master/Slave Set: mysql-master [mysql]
Stopped: [ virt-049 virt-048 ]
PCSD Status:
virt-048: Online
virt-049: Online
Daemon Status:
corosync: active/enabled
pacemaker: active/enabled
pcsd: active/enabled
>>(pcs resource)
[root@virt-049 my.cnf.d]# pcs resource show mysql-master
Meta Attrs: notify=true
Master: mysql-master
Resource: mysql (class=ocf provider=heartbeat type=mysql)
Attributes: replication_user=replication_user replication_port=3307 replication_passwd=password
Operations: start interval=0s timeout=120 (mysql-start-interval-0s)
stop interval=0s timeout=120 (mysql-stop-interval-0s)
promote interval=0s timeout=120 (mysql-promote-interval-0s)
demote interval=0s timeout=120 (mysql-demote-interval-0s)
monitor interval=30s (mysql-monitor-interval-30s)
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHBA-2016-2174.html |