diff --git a/frappe/commands/site.py b/frappe/commands/site.py index 0e65b62010..eb5aed4a2e 100755 --- a/frappe/commands/site.py +++ b/frappe/commands/site.py @@ -50,10 +50,6 @@ def _new_site(db_name, site, mariadb_root_username=None, mariadb_root_password=N print('--no-mariadb-socket requires db_type to be set to mariadb.') sys.exit(1) - if no_mariadb_socket: - print('Using % as Database Host.') - db_host = "%" - if not db_name: db_name = '_' + hashlib.sha1(site.encode()).hexdigest()[:16] @@ -77,7 +73,7 @@ def _new_site(db_name, site, mariadb_root_username=None, mariadb_root_password=N install_db(root_login=mariadb_root_username, root_password=mariadb_root_password, db_name=db_name, admin_password=admin_password, verbose=verbose, - source_sql=source_sql, force=force, reinstall=reinstall, db_type=db_type, db_host=db_host, db_port=db_port) + source_sql=source_sql, force=force, reinstall=reinstall, db_type=db_type, db_host=db_host, db_port=db_port, no_mariadb_socket=no_mariadb_socket) apps_to_install = ['frappe'] + (frappe.conf.get("install_apps") or []) + (list(install_apps) or []) for app in apps_to_install: diff --git a/frappe/database/__init__.py b/frappe/database/__init__.py index 9d05223044..1f0d3f9bf5 100644 --- a/frappe/database/__init__.py +++ b/frappe/database/__init__.py @@ -6,14 +6,14 @@ from __future__ import unicode_literals -def setup_database(force, source_sql=None, verbose=None): +def setup_database(force, source_sql=None, verbose=None, no_mariadb_socket=False): import frappe if frappe.conf.db_type == 'postgres': import frappe.database.postgres.setup_db return frappe.database.postgres.setup_db.setup_database(force, source_sql, verbose) else: import frappe.database.mariadb.setup_db - return frappe.database.mariadb.setup_db.setup_database(force, source_sql, verbose) + return frappe.database.mariadb.setup_db.setup_database(force, source_sql, verbose, no_mariadb_socket=no_mariadb_socket) def drop_user_and_database(db_name, root_login=None, root_password=None): import frappe diff --git a/frappe/database/mariadb/setup_db.py b/frappe/database/mariadb/setup_db.py index bda3c8b0a7..923ae154ad 100644 --- a/frappe/database/mariadb/setup_db.py +++ b/frappe/database/mariadb/setup_db.py @@ -30,7 +30,7 @@ def get_mariadb_versions(): return versions -def setup_database(force, source_sql, verbose): +def setup_database(force, source_sql, verbose, no_mariadb_socket=False): frappe.local.session = frappe._dict({'user':'Administrator'}) db_name = frappe.local.conf.db_name @@ -38,17 +38,23 @@ def setup_database(force, source_sql, verbose): dbman = DbManager(root_conn) if force or (db_name not in dbman.get_database_list()): dbman.delete_user(db_name) + if no_mariadb_socket: + dbman.delete_user(db_name, host="%") dbman.drop_database(db_name) else: raise Exception("Database %s already exists" % (db_name,)) dbman.create_user(db_name, frappe.conf.db_password) + if no_mariadb_socket: + dbman.create_user(db_name, frappe.conf.db_password, host="%") if verbose: print("Created user %s" % db_name) dbman.create_database(db_name) if verbose: print("Created database %s" % db_name) dbman.grant_all_privileges(db_name, db_name) + if no_mariadb_socket: + dbman.grant_all_privileges(db_name, db_name, host="%") dbman.flush_privileges() if verbose: print("Granted privileges to user %s and database %s" % (db_name, db_name)) @@ -75,7 +81,7 @@ def setup_help_database(help_db_name): def drop_user_and_database(db_name, root_login, root_password): frappe.local.db = get_root_connection(root_login, root_password) dbman = DbManager(frappe.local.db) - dbman.delete_user(db_name) + dbman.delete_user(db_name, host="%") dbman.drop_database(db_name) def bootstrap_database(db_name, verbose, source_sql=None): diff --git a/frappe/installer.py b/frappe/installer.py index 4b07ab8ce8..f995e6eff5 100755 --- a/frappe/installer.py +++ b/frappe/installer.py @@ -22,7 +22,7 @@ from frappe.core.doctype.scheduled_job_type.scheduled_job_type import sync_jobs def install_db(root_login="root", root_password=None, db_name=None, source_sql=None, admin_password=None, verbose=True, force=0, site_config=None, reinstall=False, - db_type=None, db_host=None, db_port=None): + db_type=None, db_host=None, db_port=None, no_mariadb_socket=False): if not db_type: db_type = frappe.conf.db_type or 'mariadb' @@ -32,7 +32,7 @@ def install_db(root_login="root", root_password=None, db_name=None, source_sql=N frappe.flags.root_login = root_login frappe.flags.root_password = root_password - setup_database(force, source_sql, verbose) + setup_database(force, source_sql, verbose, no_mariadb_socket) frappe.conf.admin_password = frappe.conf.admin_password or admin_password @@ -323,4 +323,4 @@ def extract_tar_files(site_name, file_path, folder_name): finally: frappe.destroy() - return tar_path \ No newline at end of file + return tar_path