.my.cnf: default to login when no user specified
When using a .my.cnf file, when there is no user variable defined, default to the login user. This change has the mysql_user module behavior match the behavior of the mysql command-line client. Also adds an example .my.cnf to the docs.
This commit is contained in:
parent
610043a2be
commit
e048e47ad0
1 changed files with 15 additions and 2 deletions
17
mysql_user
17
mysql_user
|
@ -91,7 +91,17 @@ requirements: [ "ConfigParser", "MySQLdb" ]
|
||||||
author: Mark Theunissen
|
author: Mark Theunissen
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
EXAMPLES = """
|
||||||
|
# Example .my.cnf file for setting the root password
|
||||||
|
# Note: don't use quotes around the password, because the mysql_user module
|
||||||
|
# will include them in the password but the mysql client will not
|
||||||
|
[client]
|
||||||
|
user=root
|
||||||
|
password=n<_665{vS43y
|
||||||
|
"""
|
||||||
|
|
||||||
import ConfigParser
|
import ConfigParser
|
||||||
|
import getpass
|
||||||
try:
|
try:
|
||||||
import MySQLdb
|
import MySQLdb
|
||||||
except ImportError:
|
except ImportError:
|
||||||
|
@ -253,10 +263,13 @@ def load_mycnf():
|
||||||
passwd = config.get('client', 'pass')
|
passwd = config.get('client', 'pass')
|
||||||
except (ConfigParser.NoOptionError):
|
except (ConfigParser.NoOptionError):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
# If .my.cnf doesn't specify a user, default to user login name
|
||||||
try:
|
try:
|
||||||
creds = dict(user=config.get('client', 'user'),passwd=passwd)
|
user = config.get('client', 'user')
|
||||||
except (ConfigParser.NoOptionError):
|
except (ConfigParser.NoOptionError):
|
||||||
return False
|
user = getpass.getuser()
|
||||||
|
creds = dict(user=user,passwd=passwd)
|
||||||
return creds
|
return creds
|
||||||
|
|
||||||
# ===========================================
|
# ===========================================
|
||||||
|
|
Loading…
Reference in a new issue