Fix MySQL 5.6 compatibility
In MySQL 5.6, the root account created by default during MySQL installation has the PROXY ... WITH GRANT OPTION privilege for ''@'', that is, for all users. The mysql_user module tries to revoke this privilege, but this fails: _mysql_exceptions.ProgrammingError: (1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '''@'' FROM 'root'@'localhost'' at line 1") Quick fix: don't revoke privilege if user is root and the privilege to revoke contains PROXY.
This commit is contained in:
parent
30cab814e8
commit
66ffef5967
1 changed files with 3 additions and 2 deletions
|
@ -153,6 +153,7 @@ def user_mod(cursor, user, host, password, new_priv):
|
||||||
# the new specification, then revoke all privileges on it.
|
# the new specification, then revoke all privileges on it.
|
||||||
for db_table, priv in curr_priv.iteritems():
|
for db_table, priv in curr_priv.iteritems():
|
||||||
if db_table not in new_priv:
|
if db_table not in new_priv:
|
||||||
|
if user != "root" and "PROXY" not in priv:
|
||||||
privileges_revoke(cursor, user,host,db_table)
|
privileges_revoke(cursor, user,host,db_table)
|
||||||
changed = True
|
changed = True
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue