RockyCPanel Rocky

MySQL Setup

MySQL is a core component when you want panel data + per-server managed databases. This guide uses Docker MySQL on port 5757.

1. Auto setup (recommended)

Run the auto script; it will create the container and ask for credentials (root, panel user, host user).

cd /home/mihai/Desktop/cpanel
chmod +x auto-db.sh
./auto-db.sh

The script prints the exact .env values to use and the Database Host credentials for Admin > Databases.

2. Configure panel to use MySQL (5757)

cd /home/mihai/Desktop/cpanel/panel
cp .env.mysql-docker.example .env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=5757
DB_DATABASE=panel
DB_USERNAME=cpanel
DB_PASSWORD=change_me_panel_password
npm run upgrade-db
npm run create-user
npm run dev

3. Add DB host in panel admin

Manual setup (optional)

Use this only if you want to run MySQL without the script.

Start MySQL in Docker

cd /home/mihai/Desktop/cpanel/panel
docker compose -f docker-compose.mysql.yml up -d
docker compose -f docker-compose.mysql.yml ps

Login to MySQL shell

Use root credentials from docker-compose.mysql.yml (or your overridden env values).

docker exec -it cpanel-mysql mysql --protocol=tcp -h 127.0.0.1 -P 5757 -u root -p

Manually create databases/users

CREATE USER 'cpanel'@'%' IDENTIFIED BY 'change_me_panel_password';
CREATE DATABASE panel;
GRANT ALL PRIVILEGES ON panel.* TO 'cpanel'@'%';
FLUSH PRIVILEGES;
CREATE USER 'cpanelhost'@'%' IDENTIFIED BY 'change_me_host_password';
GRANT ALL PRIVILEGES ON *.* TO 'cpanelhost'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;