| Bug #81326 | With MySQL 5.7 version, mysqlrpladmin fails to do switchover | ||
|---|---|---|---|
| Submitted: | 5 May 2016 13:46 | Modified: | 14 Aug 2016 14:31 |
| Reporter: | Kunal Patil | Email Updates: | |
| Status: | No Feedback | Impact on me: | |
| Category: | MySQL Utilities | Severity: | S1 (Critical) |
| Version: | 5.7 | OS: | Any |
| Assigned to: | CPU Architecture: | Any | |
[5 May 2016 13:52]
Kunal Patil
Fix is as below:
[root@KP-HOST-40 common]# diff topology.py topology.py_orig
54c54
< 'SET %s = PASSWORD("%s")'
---
> 'SET password = PASSWORD("%s")'
57c57
< _SELECT_RPL_USER_PASS_QUERY = ('SELECT user, host, grant_priv, %s, '
---
> _SELECT_RPL_USER_PASS_QUERY = ('SELECT user, host, grant_priv, password, '
1686,1692d1685
< version = self.master.get_version().split('.')
< version_number = ".".join(version[:2])
< if version_number == '5.7':
< password_column = "authentication_string"
< else:
< password_column = "password"
<
1760c1753
< (password_column, user, m_candidate.host))
---
> (user, m_candidate.host))
1786c1779
< self.master.exec_query(_UPDATE_RPL_USER_QUERY % (password_column, passwd, user))
---
> self.master.exec_query(_UPDATE_RPL_USER_QUERY % (passwd, user))
[22 Jun 2016 20:32]
Aaron Lager
Looks like replication.py is also attempting to use the user.password column
[14 Jul 2016 14:31]
Chuck Bell
This issue was fixed in release-1.6.2. Please try that version to verify.
[15 Aug 2016 1:00]
Bugs System
No feedback was provided for this bug for over a month, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open".

Description: Executing below command with mysql 5.7 db servers fails with an error as "ERROR: Query failed. 1054 (42S22): Unknown column 'password' in 'field list'" Command : mysqlrpladmin --master=%s --new-master=%s --slaves=%s switchover --force --demote-master --rpl-user=%s %s -v This is happening because column name in mysql.user table is changed from 'password' to 'authentication_string'. How to repeat: Execute mysqlrpladmin switchover command : mysqlrpladmin --master=%s --new-master=%s --slaves=%s switchover --force --demote-master --rpl-user=%s %s -v Suggested fix: Making below changes in topology.py solved this issue : Below topology.py is modified file and topology.py_orig is original file. [root@KP-HOST-40 common]# diff topology.py topology.py_orig 54c54 < 'SET %s = PASSWORD("%s")' --- > 'SET password = PASSWORD("%s")' 57c57 < _SELECT_RPL_USER_PASS_QUERY = ('SELECT user, host, grant_priv, %s, ' --- > _SELECT_RPL_USER_PASS_QUERY = ('SELECT user, host, grant_priv, password, ' 1686,1693d1685 < version = self.master.get_version().split('.') < version_number = ".".join(version[:2]) < #version_number = version[0]+"."+version[1] < if version_number == '5.7': < password_column = "authentication_string" < else: < password_column = "password" < 1761c1753 < (password_column, user, m_candidate.host)) --- > (user, m_candidate.host)) 1787c1779 < self.master.exec_query(_UPDATE_RPL_USER_QUERY % (password_column, passwd, user)) --- > self.master.exec_query(_UPDATE_RPL_USER_QUERY % (passwd, user)) [root@KP-HOST-40 common]#