UAPI Functions - Mysql::rename_database

Description

This function renames a MySQL® database.

Warning:

It is potentially dangerous to rename a MySQL database. We strongly recommend that you perform a backup of the database before you attempt to rename it. 

 

MySQL does not natively rename databases. When cPanel & WHM "renames" a database, the system performs the following steps:
  1. The system creates a new database.
  2. The system moves data from the old database to the new database.
  3. The system recreates grants and stored code in the new database.
  4. The system deletes the old database and its grants. 

Warning:

  • If any of the first three steps fail, the system returns an error and attempts to restore the database's original state. If the restoration process fails, the function's error message will include the additional failures.
  • In rare cases, the system creates the new database successfully, but fails to complete step 4. The system treats this as a success, but the function will return warning messages that describe the failure.

 

Examples 


 cPanel or Webmail Session URL

https://hostname.example.com:2083/cpsess##########/execute/Mysql/rename_database?oldname=mydb&newname=newlyrenamed

 LiveAPI PHP Class

$cpanel new CPANEL(); // Connect to cPanel - only do this once.
  
// Rename the mydb database.
$rename_db $cpanel->uapi(
    'Mysql''rename_database',
    array(
        'oldname'       => 'mydb',
        'newname'       => 'newlyrenamed',
    )
);

 LiveAPI Perl Module

my $cpliveapi = Cpanel::LiveAPI->new(); # Connect to cPanel - only do this once.
  
# Rename the mydb database.
my $rename_db $cpliveapi->uapi(
    'Mysql''rename_database',
    {
        'oldname'       => 'mydb',
        'newname'       => 'newlyrenamed',
    }
);

 cPanel Template Toolkit

<!-- Rename the database. -->
[% execute('Mysql', 'rename_database', { oldname => 'mydb', newname => 'newlyrenamed' } ) %]

 Command Line

uapi --user=username Mysql rename_database oldname=mydb newname=newlyrenamed

 

Notes:

  • You must URI-encode values.
  • username represents your account-level username.

 Output (JSON)

{
  "messages": null,
  "errors": null,
  "status": 1,
  "metadata": {
      
  },
  "data": null
}

 

Note:

Use cPanel's API Shell interface (Home >> Advanced >> API Shell) to directly test cPanel API calls.

 

Parameters

 Parameter 

Type

Description

Possible values

Example

oldname

string

Required

The database's current name.

A database on the cPanel account.

mydb

newname

 string 

Required

The database's new name.

A valid database name.

Important:

  • If database prefixing is enabled, you must prefix this value with the account prefix and an underscore (_). For example, for the dbuserdatabase on the user cPanel account, pass in a value ofuser_dbuser.
  • The maximum length of the database name is 64 characters. However, due to the method that cPanel & WHM uses to store MySQL database names, each underscore character requires two characters of that  limit. Therefore, if you enable database prefixing, the maximum length of the database name is 63 characters, which includes both the database prefix and the underscore character. Each additional underscore requires another two characters of that limit.

 newlyrenamed 

 

Returns

This function only returns metadata.

  • 0 Users Found This Useful
Was this answer helpful?

Related Articles

The cPanel Interface

For  cPanel  &  WHM  version  58 Overview The cPanel interface is...

User Preferences

For cPanel & WHM version 58 Overview This document outlines how to access your cPanel...

Manage External Authentications

For cPanel & WHM version 58 Overview Manage credentials Additional documentation...

What is cPanelID?

In This Article:  Overview ServicesHow to get a cPanelID cPanelID External...

Guide to cPanel Interface Customization - cPanel Style Development

Introduction You can develop custom styles that modify the appearance of the cPanel interface....