diff --git a/mysql_db b/mysql_db
index f1f61837635..58c3d974edb 100755
--- a/mysql_db
+++ b/mysql_db
@@ -180,18 +180,21 @@ def main():
     elif login_password is None or login_user is None:
         module.fail_json(msg="when supplying login arguments, both login_user and login_password must be provided")
 
+    if state in ['dump','import']:
+        if target is None:
+            module.fail_json(msg="with state={0} target is required".format(state))
+        connect_to_db = db
+    else:
+        connect_to_db = 'mysql'
     try:
         if module.params["login_unix_socket"] != None:
-            db_connection = MySQLdb.connect(host=module.params["login_host"], unix_socket=module.params["login_unix_socket"], user=login_user, passwd=login_password, db=db)
+            db_connection = MySQLdb.connect(host=module.params["login_host"], unix_socket=module.params["login_unix_socket"], user=login_user, passwd=login_password, db=connect_to_db)
         else:
-            db_connection = MySQLdb.connect(host=module.params["login_host"], user=login_user, passwd=login_password, db=db)
+            db_connection = MySQLdb.connect(host=module.params["login_host"], user=login_user, passwd=login_password, db=connect_to_db)
         cursor = db_connection.cursor()
     except Exception as e:
         module.fail_json(msg="unable to connect, check login_user and login_password are correct, or alternatively check ~/.my.cnf contains credentials")
 
-    if (state in ['dump','import']) and target is None:
-        module.fail_json(msg="with state={0} target is required".format(state))
-
     changed = False
     if db_exists(cursor, db):
         if state == "absent":