diff --git a/modoboa_installer/database.py b/modoboa_installer/database.py index df49739..4d6a234 100644 --- a/modoboa_installer/database.py +++ b/modoboa_installer/database.py @@ -81,6 +81,9 @@ class PostgreSQL(Database): """Setup .pgpass file.""" if self._pgpass_done: return + if self.dbname not in ["localhost", "127.0.0.1"]: + self._pgpass_done = True + return pw = pwd.getpwnam(self.dbuser) target = os.path.join(pw[5], ".pgpass") with open(target, "w") as fp: @@ -96,7 +99,7 @@ class PostgreSQL(Database): self._setup_pgpass(dbname, dbuser, dbpassword) utils.exec_cmd( "psql -h {} -d {} -U {} -w < {}".format( - "127.0.0.1", dbname, dbuser, path), + self.dbhost, dbname, dbuser, path), sudo_user=self.dbuser) @@ -120,7 +123,7 @@ class MySQL(Database): if dbuser is None and dbpassword is None: dbuser = self.dbuser dbpassword = self.dbpassword - cmd = "mysql -u {} -p{}".format(dbuser, dbpassword) + cmd = "mysql -h {} -u {} -p{}".format(self.dbhost, dbuser, dbpassword) if dbname: cmd += " -D {}".format(dbname) utils.exec_cmd(cmd + """ -e "{}" """.format(query)) @@ -128,7 +131,7 @@ class MySQL(Database): def create_user(self, name, password): """Create a user.""" self._exec_query( - "CREATE USER '{}'@'localhost' IDENTIFIED BY '{}'".format( + "CREATE USER '{}'@'%' IDENTIFIED BY '{}'".format( name, password)) def create_database(self, name, owner): @@ -140,15 +143,14 @@ class MySQL(Database): def grant_access(self, dbname, user): """Grant access to dbname.""" self._exec_query( - "GRANT ALL PRIVILEGES ON {}.* to '{}'@'localhost'" + "GRANT ALL PRIVILEGES ON {}.* to '{}'@'%'" .format(dbname, user)) def load_sql_file(self, dbname, dbuser, dbpassword, path): """Load SQL file.""" - dbhost = self.config.get("database", "host") utils.exec_cmd( "mysql -h {} -u {} -p{} {} < {}".format( - dbhost, dbuser, dbpassword, dbname, path) + self.dbhost, dbuser, dbpassword, dbname, path) ) diff --git a/modoboa_installer/scripts/modoboa.py b/modoboa_installer/scripts/modoboa.py index 7094598..e842add 100644 --- a/modoboa_installer/scripts/modoboa.py +++ b/modoboa_installer/scripts/modoboa.py @@ -67,16 +67,17 @@ class Modoboa(base.Installer): "--timezone", self.config.get("modoboa", "timezone"), "--domain", self.config.get("general", "hostname"), "--extensions", " ".join(self.extensions), - "--dburl", "default:{0}://{1}:{2}@localhost/{1}".format( + "--dburl", "default:{0}://{1}:{2}@{3}/{1}".format( self.config.get("database", "engine"), self.dbname, - self.dbpasswd) + self.dbpasswd, self.dbhost) ] if self.config.getboolean("amavis", "enabled"): args += [ - "amavis:{}://{}:{}@localhost/{}".format( + "amavis:{}://{}:{}@{}/{}".format( self.config.get("database", "engine"), self.config.get("amavis", "dbuser"), self.config.get("amavis", "dbpassword"), + self.dbhost, self.config.get("amavis", "dbname") ) ]