Force using sudo "as root" for various mysql commands
this lets us leverage `/root/.my.cnf` b/c it uses `sudo -H`
This commit is contained in:
parent
3771688660
commit
eae08ad5d4
|
@ -72,7 +72,9 @@ def create_db(c, name, checkfirst=True, user=None):
|
|||
Create a MySQL database.
|
||||
"""
|
||||
if not checkfirst or not db_exists(c, name):
|
||||
c.sudo('mysqladmin create {}'.format(name))
|
||||
# note, we force sudo "as root" to ensure -H flag is used
|
||||
# (which allows us to leverage /root/.my.cnf config file)
|
||||
c.sudo('mysqladmin create {}'.format(name), user='root')
|
||||
if user:
|
||||
grant_access(c, name, user)
|
||||
|
||||
|
@ -82,7 +84,9 @@ def drop_db(c, name, checkfirst=True):
|
|||
Drop a MySQL database.
|
||||
"""
|
||||
if not checkfirst or db_exists(c, name):
|
||||
c.sudo('mysqladmin drop --force {}'.format(name))
|
||||
# note, we force sudo "as root" to ensure -H flag is used
|
||||
# (which allows us to leverage /root/.my.cnf config file)
|
||||
c.sudo('mysqladmin drop --force {}'.format(name), user='root')
|
||||
|
||||
|
||||
def grant_access(c, dbname, username):
|
||||
|
@ -110,7 +114,9 @@ def sql(c, sql, database=''):
|
|||
# some crazy quoting required here, see also
|
||||
# http://stackoverflow.com/a/1250279
|
||||
sql = sql.replace("'", "'\"'\"'")
|
||||
return c.sudo("mysql --execute='{}' --batch --skip-column-names {}".format(sql, database))
|
||||
# note, we force sudo "as root" to ensure -H flag is used
|
||||
# (which allows us to leverage /root/.my.cnf config file)
|
||||
return c.sudo("mysql --execute='{}' --batch --skip-column-names {}".format(sql, database), user='root')
|
||||
|
||||
|
||||
def download_db(c, name, destination=None):
|
||||
|
@ -119,7 +125,9 @@ def download_db(c, name, destination=None):
|
|||
"""
|
||||
if destination is None:
|
||||
destination = './{}.sql.gz'.format(name)
|
||||
c.sudo('mysqldump --result-file={0}.sql {0}'.format(name))
|
||||
# note, we force sudo "as root" to ensure -H flag is used
|
||||
# (which allows us to leverage /root/.my.cnf config file)
|
||||
c.sudo('mysqldump --result-file={0}.sql {0}'.format(name), user='root')
|
||||
c.sudo('gzip --force {}.sql'.format(name))
|
||||
c.get('{}.sql.gz'.format(name), destination)
|
||||
c.sudo('rm {}.sql.gz'.format(name))
|
||||
|
|
Loading…
Reference in a new issue