Backends - PEXPlugins/PermissionsEx GitHub Wiki

PEX provides two backends: file or sql. The file backend is used by default.

The active backend can be switched "on-the-fly" without a server restart by using the pex backend command and specifying the backend to use, as defined in the backends section of the config.yml file. See Commands for further details and the permissions node.

File backend configuration (top)

All permissions info is stored in the filename specified in the file backend section of the config file.

SQL backend configuration (top)

WARNING: The SQL backend has one limitation at the time of this writing (1/2/2013). The max length of a node is 200 characters long by default. Anything longer will be truncated in the database and will not generate an error. To work around this limitation, you can:

  • Edit the SQL database to allow for longer strings (not recommended)
  • Split longer lines into separate ones that are under 200 characters

(Thanks goes to Bukkit forum member s32ialx for finding this limitation and reporting it)

SQL backend configuration nodes are inside the permissions.backend.sql node

Node Description
uri Database connection string, AKA the DSN. Please note that the DSN is driver specific. For example, MySQL would be like this: mysql://<hostname>/<database>
user Database user name. If the database doesn't require a username, this can be removed.
password Database password for specified user. If database doesn't require a password, this is optional

MySQL (top)

SQL Backend configuration example using MySQL:

permissions:
    backend: sql
    backends:
        sql:
            uri: mysql://localhost/databasename
            user: username
            password: password

Change the hostname, database name, database username and password as needed to match your configuration. In many cases, the hostname is "localhost", assuming that the database server is on the same machine as the minecraft server. Check with your server host or network/systems admin for confirmation.

PEX will automatically create the database tables and initial groups and permissions on startup if they are not already present. When ready, import data from the file backend by running the command pex import file

Do not delete the initial data if you are not 100% sure of what you are doing.

Additionally one can change the default table names with alias. Example:

permissions:
    backends:
        sql:
            uri: mysql://192.168.5.4/demo
            password: password
            user: demo
            aliases:
                permissions: pex_permissions
                permissions_inheritance: pex_inheritance
                permissions_entity: pex_entity

SQLite Backend Configuration (top)

SQLite configuration is almost the same as the SQL section, with a few differences:

You need to set permissions.backends.sql.driver to sqlite and permissions.backends.sql.uri to something like sqlite:databasename.

permissions:
    basedir: plugins/PermissionsEx
    backend: sql
    backends:
        sql:
            uri: sqlite:plugins/PermissionsEx/permissions.db
            user: username
            password: password

After server restart/reload, a file named permissions.db will be created in PermissionsEx plugin folder. Do not remove this file, it is the database file.

⚠️ **GitHub.com Fallback** ⚠️