Documentation menuDatabases

Databases: MySQL/MariaDB and PostgreSQL

Each account creates its own MySQL/MariaDB and PostgreSQL databases in the User panel; names get the account prefix and privileges are granted per database. phpMyAdmin and Adminer open with one click and no password, remote access is limited to IP addresses or ranges, and databases are included in account backups automatically.

Last updated:

On this page
  1. MySQL databases
    1. Naming
    2. Database Wizard
    3. Privileges
    4. Maintenance
  2. phpMyAdmin and Adminer
  3. Remote MySQL access
  4. PostgreSQL
  5. Package limits
  6. Administrator tools
  7. Docker and Railway
  8. Backups

#MySQL databases

In the User panel, Databases → MySQL Databases shows databases, database users and the privileges between them on one screen. The server runs MariaDB; applications connect to localhost on port 3306 (when an external server is used, the page shows its address instead).

#Naming

Database and user names are prefixed with the account name automatically: blog on the ali account becomes ali_blog, so accounts never collide.

RuleDatabaseUser
Allowed characterslowercase letters, digits, _, - (cannot start with a hyphen)lowercase letters, digits, _
Maximum length including the prefix64 characters32 characters

#Database Wizard

The Database Wizard creates the database, its user and the privileges in one step; the default is All privileges. At the end it shows the host, port, database, user, password and a connection URL. The password is not shown again, so put it into your application's configuration right away. If you pick an existing username in the wizard, that user's password is updated.

#Privileges

A user gets either All privileges on a database or a selection of: SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER. Privileges apply to that database only; server-wide privileges are never granted. User passwords are changed on the same page.

#Maintenance

Database maintenance runs check, repair, optimize and analyze (CHECK, REPAIR, OPTIMIZE, ANALYZE TABLE) on selected or all databases. Tables are processed one by one with visible progress and a per-table result, and recent runs appear under Maintenance history. Repair only matters for engines such as MyISAM and Aria; InnoDB tables recover on their own after a crash.

#phpMyAdmin and Adminer

Both tools open without asking for a password. The panel prepares a temporary database user that can reach only that account's databases and issues a single-use sign-in token valid for 60 seconds. The tool exchanges the token for credentials inside the server, so the password never reaches the browser or the address bar.

  • phpMyAdmin: Databases → phpMyAdmin in the User panel opens it in a new tab. On a server installation it runs on the server hostname over HTTPS; in a container it runs on the same address as the panel. If the reseller has a custom domain, sql.<domain> is used. The server administrator can also open phpMyAdmin for the whole server from the MySQL / MariaDB page in Server Admin.
  • Adminer: Databases → Adminer gives one-click access to both PostgreSQL and MySQL. Adminer exists only on server installations and is installed together with the PostgreSQL component. Direct sign-in with a username and password is disabled; it opens only from the panel.

#Remote MySQL access

By default, database users can connect only from localhost and 127.0.0.1. Every address added on Databases → Remote MySQL is applied to all database users of the account, and removing it closes access from that address. Accepted formats:

FormatExample
Single IPv4 address203.0.113.10
IPv4 range (/8 to /32)203.0.113.0/24
Range with the % wildcard203.0.113.%
Single IPv6 address (IPv6 ranges are not supported)2001:db8::10
Hostnameoffice.example.com

The server administrator can define named address sets under MySQL / MariaDB → Remote access profiles (for example an office network or a backup server). Users apply these profiles to individual database users on the Remote MySQL page.

Remote connections require MariaDB to listen on the network. This is set by Bind address (bind_address) on the MySQL Configuration page; open port 3306 in the firewall only to allowed addresses. If you do not use remote access, 127.0.0.1 is recommended.

On installations that use an external MySQL service (for example Railway MySQL), users are already created reachable from every network, and the Remote MySQL page does not accept addresses.

#PostgreSQL

PostgreSQL is optional. The administrator installs it from Server Admin → PostgreSQL, using either the distribution package or the official PostgreSQL repository with a version choice from 14 to 18. It listens on localhost only, passwords are stored with scram-sha-256, and only granted roles can connect to each database. Removing it keeps the data. If PostgreSQL is already installed on the server, the panel can adopt it.

On Databases → PostgreSQL Databases in the User panel:

  • Create prefixed databases and roles (a wizard is available too).
  • Give roles one of three levels per database: owner, read-write or read-only.
  • Enable trusted extensions; untrusted ones (such as PostGIS) must first be allowed by the administrator.
  • Export writes a pg_dump file under ~/backups; import accepts .dump, .backup, .tar, .sql and .sql.gz files.
  • Remote access is defined per role and IP/CIDR, optionally SSL-only. The administrator has to enable remote access first; by default the panel then opens the PostgreSQL port in the firewall for the allowed addresses only.

The concurrent connection limit per role defaults to 20 and is changed in Server Admin.

#Package limits

The MySQL databases field of a package limits how many MySQL databases an account can create; leaving it empty means unlimited. For PostgreSQL, Server Admin → PostgreSQL can set a separate limit per package; without one, the package's general database limit applies. MySQL and PostgreSQL databases are counted separately. See Accounts and packages for package details.

Database limits work the same in both editions. The Community edition limit is the number of hosting accounts on the server (at most 3); see Licensing.

#Administrator tools

Server Admin → MySQL / MariaDB shows the server status and these tabs: Active connections, Database map (which database belongs to which account; link, recreate or drop orphaned and missing entries), Maintenance and Remote access profiles. The database administrator password is also changed here.

The MySQL Configuration page edits my.cnf settings (connections, InnoDB, memory, logging), suggests values based on the server's memory, and keeps a change history you can roll back to. MariaDB Upgrade is available in the Pro edition only, and only for MariaDB on a server installation.

#Docker and Railway

TopicServer installationContainer
MySQLMariaDB installed by the installerEmbedded MariaDB (data in /data/mysql) or an external server via BIPANEL_MYSQL_URL
PostgreSQLInstalled from the panelExternal server via BIPANEL_POSTGRES_URL only
phpMyAdminYesYes
AdminerYes (with the PostgreSQL component)No
MariaDB upgradeProNo (updated with the image)

With an external PostgreSQL server, remote access is managed by that service. See Docker and Railway for details.

#Backups

Account backups include databases by default: each MySQL database is dumped with mysqldump and each PostgreSQL database with pg_dump, together with database users, privileges and Remote MySQL addresses. A restore recreates all of them. Full archive backups are available in both editions; incremental, encrypted backups are part of the Pro edition. See Backups and migration.

Something missing or wrong on this page? Let us know.