Initializes the database connection pool.

        :param data: <object> event data object
        :return: <void>

def _applicationStart(self, data):
        """
        Initializes the database connection pool.

        :param data: <object> event data object
        :return: <void>
        """
        checkup = False
        if "viper.mysql" in self.application.config \
                and isinstance(self.application.config["viper.mysql"], dict):
            if "host" in self.application.config["viper.mysql"] and \
                    "port" in self.application.config["viper.mysql"] and \
                    "name" in self.application.config["viper.mysql"]:
                if len(self.application.config["viper.mysql"]["host"]) > 0 and \
                        self.application.config["viper.mysql"]["port"] > 0 and \
                        len(self.application.config["viper.mysql"]["name"]) > 0:
                    checkup = True

        if checkup is not True:
            return

        try:
            self._connectionPool = adbapi.ConnectionPool(
                "MySQLdb",
                host=self.application.config["viper.mysql"]["host"],
                port=int(self.application.config["viper.mysql"]["port"]),

                user=self.application.config["viper.mysql"]["username"],
                passwd=self.application.config["viper.mysql"]["password"],

                db=self.application.config["viper.mysql"]["name"],
                charset=self.application.config["viper.mysql"]["charset"],

                cp_min=int(
                    self.application.config["viper.mysql"]["connectionsMinimum"]
                ),
                cp_max=int(
                    self.application.config["viper.mysql"]["connectionsMaximum"]
                ),
                cp_reconnect=True
            )
        except Exception as e:
            self.log.error(
                "[Viper.MySQL] Cannot connect to server. Error: {error}",
                error=str(e)
            )

        if "init" in self.application.config["viper.mysql"] \
                and self.application.config["viper.mysql"]["init"]["runIfEmpty"]:
            self._checkIfDatabaseIsEmpty(
                lambda isEmpty:
                    self._scheduleDatabaseInit(isEmpty)
                ,
                lambda error:
                    self.log.error("[Viper.MySQL] Cannot check if database is empty. Error {error}", error=error)
            )