Almost every dynamic website keeps its data in a database: WordPress posts, shop products and orders, user accounts and settings. Uploading files to hosting is not enough; the site also needs an empty database and a user allowed to access it. ISPmanager creates both in a single form, but if you do not know what each field means, the site may fail to connect later or text may turn into question marks.
Database, user and password: how they fit together
A database is a set of tables, and a database user is the login used to reach those tables. A site never connects to a database directly; it always signs in with a username and password, so the site configuration contains four values: server address, database name, username and password. One user can own several databases, but it is safer to create a separate user per site, so a vulnerability in one site cannot expose another site's data. The database user is also not your hosting login, and the two passwords should be different.
Creating a database in ISPmanager
Open ISPmanager from the hosting page in your sayt.uz cabinet, go to Databases in the left menu and click the create button. The form contains:
- Name — Latin letters, digits and underscores, for example
shop_db. Some setups prepend an account prefix automatically, so check the final name in the list. - Database server — usually MySQL or MariaDB; leave it as is if there is only one option.
- Charset — choose
utf8mb4, which stores Uzbek, Russian and any other characters, including emoji. - User — choose to create a new user, for example
shop_user. - Password — use the generated random password or a strong one of at least 16 characters, and store it safely.
- Remote access — if offered, leave it off unless you really need it.
Connecting WordPress or Laravel
Say a small clothing shop in Tashkent is launching a WordPress site on misol.uz. With shop_db and shop_user created, the wp-config.php file gets these lines:
define( 'DB_NAME', 'shop_db' );
define( 'DB_USER', 'shop_user' );
define( 'DB_PASSWORD', 'your-strong-password' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8mb4' );
The host is normally localhost because the site and database share a server; if the connection fails, check the database server address shown in the panel or ask support. In Laravel the same values go into .env:
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=shop_db
DB_USERNAME=shop_user
DB_PASSWORD=your-strong-password
Point the Laravel document root at the public directory so .env is never reachable from a browser.
Importing a dump from your old host
When moving a site, select the database in ISPmanager and open phpMyAdmin, choose the database on the left, open the Import tab and upload the .sql or .sql.gz file. Very large files can hit browser upload or time limits; split the dump or ask support to import it. If your plan includes SSH, the command line is more reliable:
mysql -u shop_user -p shop_db < backup.sql
# compressed dump:
gunzip < backup.sql.gz | mysql -u shop_user -p shop_db
Common errors
"Error establishing a database connection" or "Access denied for user" almost always means one configuration value is wrong. Often the panel added a prefix to the name, or a trailing space slipped into the copied password; copy exact names from the ISPmanager list and reset the password. Text showing as "????" points to tables created in the old latin1 charset, which you avoid by creating databases in utf8mb4 from the start. "Too many connections" usually means the code is not closing connections or bots are flooding the site, so check the error logs.
Keeping databases tidy
Use one database and one user per site with meaningful names such as klinika_db or maktab_db. Export a copy through phpMyAdmin before deleting an old database, and make exporting a habit before plugin updates or redesigns. If anything is unclear, open a ticket from your sayt.uz cabinet.