コード例 #1
0
ファイル: Database.py プロジェクト: anavarro/carnarvon
    def create_database(self, database=''):
        """
        Try to create new database
        assumes that we have privileges to create new one 
        and try to drop database with the normal user
        """

        if database:
            name = database
        else:
            name = self.database

        try:
            co = cf.create_connector (self.conn)
            co.connect(self.username, self.password, self.hostname)

            mysqlquery = "DROP DATABASE IF EXISTS " + str(name) + ";\n"
            co.execute(mysqlquery)

            mysqlquery = "CREATE DATABASE " + str(name) + ";\n"
            co.execute(mysqlquery)
            co.close()

        except StandardError:
            sys.stderr.write ("WARNING: unable to create database. User " + self.username + " doesn't have privileges")
            self.create_user()
コード例 #2
0
ファイル: Database.py プロジェクト: anavarro/carnarvon
    def __init__(self, driver):

        server = ''
        user = ''
        pwd = ''
        db = ''
        conn = ''

        # Parse and extract items from driver string
        match=re.match('([^:]*)://(.*)/([^\?]*)\?*(.*)', driver)
        if match:
            gps = match.groups()

            # Match at least with connection type
            if len(gps) >= 1:
                conn = gps[0]

            # Match at least with connection + user/pass
            if len(gps) >= 2:
                aux = gps[1]
                if aux.find('@') >= 0:
                    upwd, server = aux.split('@')
                    if aux.find(":") >= 0:
                        user, pwd = upwd.split(':')
                else:
                    if aux.find(':') >= 0:
                        user, pwd = aux.split(':')
                    else:
                        server = aux

            # Math with everything
            if len(gps) >= 3:
                db = gps[2]

        self.username = user
        self.password = pwd
        self.hostname = server
        self.database = db
        self.conn = conn

        # Create connection
        self.__connection = None
        self.__connection = cf.create_connector (conn)
        #try:
        self.__connection.connect (self.username, self.password, self.hostname, self.database)
        """
コード例 #3
0
ファイル: Database.py プロジェクト: anavarro/carnarvon
    def create_user(self, user='', password='', hostname='', database=''):
        """
        Create User. Connection needs to have privileges
        """

        admin_user =  raw_input ("MySQL admin username: "******"MySQL admin password: "******"GRANT ALL ON "+str(self.database)
        mysqlquery += ".* TO " + str(self.username) + "@" + str(self.hostname)
        mysqlquery += " IDENTIFIED BY \""+str(self.password)+"\";\n"

        try:
            connaux = cf.create_connector(self.conn)
            connaux.connect(admin_user, admin_password, self.hostname)
            connaux.execute(mysqlquery)
            connaux.close()
            self.create_database()

        except StandardError:
            sys.exit("Error: Cannot create user")