MariaDB databases and users created via PHP script not visible in Plesk

3 min read 29-09-2024
MariaDB databases and users created via PHP script not visible in Plesk


When managing databases, it is crucial to have a clear view of the resources available to you, especially when using a management tool like Plesk. A common issue that many developers face is when MariaDB databases and users created through a PHP script do not appear in the Plesk control panel. This article will analyze this problem, provide potential solutions, and help you ensure your databases and users are properly recognized by Plesk.

Understanding the Problem

Original Scenario:
MariaDB databases and users created via a PHP script are not visible in the Plesk control panel.

This situation often occurs due to various factors such as permission issues, user privileges, or connection settings in the script that might not align with how Plesk manages its resources.

Example of a PHP Script for Database Creation

Here's a simple PHP script that demonstrates how to create a MariaDB database and a user:

<?php
$servername = "localhost";
$username = "root"; // Replace with your root or admin username
$password = "your_password"; // Replace with your root or admin password
$dbname = "new_database";
$user = "new_user";
$user_password = "user_password";

// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// Create database
$sql = "CREATE DATABASE $dbname";
if ($conn->query($sql) === TRUE) {
    echo "Database created successfully\n";
} else {
    echo "Error creating database: " . $conn->error;
}

// Create user and grant privileges
$sql = "CREATE USER '$user'@'localhost' IDENTIFIED BY '$user_password'";
if ($conn->query($sql) === TRUE) {
    echo "User created successfully\n";
} else {
    echo "Error creating user: " . $conn->error;
}

$sql = "GRANT ALL PRIVILEGES ON $dbname.* TO '$user'@'localhost'";
if ($conn->query($sql) === TRUE) {
    echo "Privileges granted successfully\n";
} else {
    echo "Error granting privileges: " . $conn->error;
}

$conn->close();
?>

Analyzing the Issue

  1. Permission Issues: If the user running the PHP script does not have the necessary permissions to create databases or users, the actions will fail silently. Plesk operates under a specific user context, and if you are using a different user in your script, the databases and users might not be associated with the Plesk user.

  2. User Privileges: Plesk manages users with specific permissions. If you create a database user outside of Plesk, it might not be listed in the Plesk interface, as Plesk keeps track of its managed users.

  3. Host Specification: The host specification ('localhost' vs. '%') when creating users can affect visibility. Plesk may only show users that are created with specific host settings (typically 'localhost').

  4. Database Configuration: Plesk manages databases using its internal settings, and if the database is created using incorrect parameters or settings in the PHP script, it may not show up in Plesk.

Solutions to Make Databases Visible in Plesk

  1. Use Plesk's Command-Line Interface (CLI): If you want to ensure that databases and users are recognized by Plesk, use its CLI commands, which are more likely to align with Plesk's internal processes.

  2. Plesk API: Consider using the Plesk API for database and user management. This way, you ensure that the resources created through your PHP script are fully recognized by Plesk.

  3. Check User and Database Creation Logs: If you are experiencing issues, check the logs in both Plesk and MariaDB for any errors that may indicate what went wrong during the creation process.

  4. Host Configuration: Ensure that you are creating users with the correct host configuration. Use 'localhost' or other allowed domains explicitly recognized by your Plesk installation.

Conclusion

Understanding how Plesk manages databases and users is crucial for anyone utilizing PHP scripts for backend database operations. By following the outlined solutions, you can ensure that any MariaDB databases or users created via a PHP script become visible in the Plesk control panel. This will help maintain an organized database environment, making management easier.

Useful Resources

Feel free to explore these resources for more detailed information on managing your MariaDB databases and enhancing your experience with Plesk.