How to Import your MySQL Database
You can import the contents of a MySQL database in multiple ways. This article will cover two methods done directly within the tools on our servers.
This article also discusses common issues, recommended solutions, and some commonly asked questions.
Note: The cPanel has imposed an upload size limit of 50MB for databases. You may encounter a timeout prompt when importing more than 50MB. If you experience this time out, please contact us via phone or chat to assist.
How to Import Databases via phpMyAdmin
To import databases via phpMyAdmin:
- Log in to the cPanel.
- Locate the Databases section, then click the phpMyAdmin icon.
- If the database does not exist, please create a database first, a user, and give the user full privileges via MySQL® Databases. Note the username and password.
You may want to refer to this article for instructions: How to Create or Delete a MySQL Database or User.
- Inside the phpMyAdmin, select the new database name from the left-hand menu.
- Click the Import tab in the main area of phpMyAdmin.
- Browse for the .sql file on your computer using the Choose File button.
- Once the .sql file is attached, scroll down and click on the Go button.
- A confirmation prompt will appear, notifying you about the successful import.
How to Import Databases via Command Line (SSH)
Advanced users may wish to use SSH to access and change their accounts, offering a more robust set of options with fewer limitations. These instructions will require a basic familiarity with SSH. If you want to learn to use SSH, please check the article below.
To import your database after you have logged in to your account with SSH:
- Upload your database to your home directory (This may be done via cPanel File Manager, an FTP client, or SSH).
- If the database does not exist, please create a database, a user, and give the user full privileges to the database. Note the username and password.
For assistance with creating a Database and Database user, please see the article below:
- Log in to your server via SSH.
- Use the
ls -l
command to verify that the file is in your current directory.
- If the file is not present, upload/move the file to the correct directory or navigate to the directory where the file is located.
- Enter the following command, replacing 'user_name,' 'database_name, and 'file.sql' with the correct values for your database and file:
mysql -p -u user_name database_name < file.sql
- You will be prompted for your database user password, and then your database will be imported.
- HostGator recommends using the database user with the database user's password.
- Make sure your database name and username have your HostGator cPanel username prefix (for example, 'cPanelUsername_databasename'; 'cPanelUsername_databaseUsername').
Common Issues
Your import file is too large!
The phpMyAdmin upload limit on HostGator shared and reseller hosting packages is 50MB. This is also the default on VPS and Dedicated servers.
Users on a VPS or Dedicated server may increase this value by increasing the cPanel PHP max upload size and the cPanel PHP max POST size from WHM under Tweak Settings.
Script Timeout Passed
This error is received when the database takes too long for phpMyAdmin to import, causing the phpMyAdmin import process to be terminated.
For security reasons, it's best to upload your database to the /home/USERNAME
section of your account. (Replace USERNAME with your cPanel username.)
#1044 - Access denied for user 'username1'@'localhost' to database 'user2_wrdp9'
The problem here is your import file contains an SQL query that attempts to create a database for the wrong username. Notice the user2 in 'user2_wrdp9' does not match the username1 in 'username1'@'localhost'. Someone must edit the import file and change the old user2 to your new username1. (If you do not feel comfortable editing your import file, we will be glad to help you do that.) Here is an example of what it looks like (notice 3 places where the username is outdated):
□□--□-- Database: `user2_wrdp9`□--□CREATE DATABASE `user2_wrdp9` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;□USE `user2_wrdp9`;□□--
#1044 - Access denied for user 'username1'@'localhost' to database 'wrdp9'
Same as the previous issue, the correct username is missing. On a shared server, your database names must always look like something_something.
#1049 - Unknown database 'username1_wrdp9'
The problem is your import file does not have a query to create the database before importing the
data. Go to cPanel > MySQL Databases and create a database with that name (in my example, "wrdp9"). Then re-attempt your import.
#1007 - Can't create database 'username1_wrdp9'; database exists
The problem is that your import file contains an SQL query attempting to create an existing database. If the database is empty, go to cPanel > MySQL Databases and remove that empty database; then re-attempt your import. If the database is not empty, someone must edit the import file and remove the CREATE DATABASE query. (If you do not feel comfortable editing your import file, we will be glad to help you do that.) Here is an example of what it looks like:
□CREATE DATABASE `username1_wrdp9` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near...
The file does not contain backup data for a database, or the file has been changed or corrupted.
ERROR 1044 (42000): Access denied for user 'username1'@'localhost' to database 'username1_wrdp9'
If you get this error, you do not have privileges on user_* to use Create. HostGator needs to correct this issue for you.
However, if you need to import now, and can't wait, here is a workaround.
The problem here is your import file contains at least one SQL query that attempts to create a database, and you do not have the privilege to do so. Someone must edit the import file and remove the CREATE DATABASE query. (If you do not feel comfortable editing your import file, we will be glad to help you do that.)
Here is an example of what it looks like:
□CREATE DATABASE `username1_wrdp9` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;
After removing this code, you must go to cPanel and click the MySQL Databases icon. You must create your database with the name removed from the import file (in my example, "wrdp9"). Then you can Import the modified import file, and it will work.
Frequently Asked Questions
How do you create a MySQL backup via your phpMyAdmin?
It is always important to create a backup of your database to be restored in case of unforeseen events.
You can do this through the backup feature of your cPanel or the export tab of phpMyAdmin.
Do you need to create a database before you import another one?
There needs to be an existing database and database user to attach the imported .sql file. One database is for one .sql file.
If you have multiple .sql files to be imported, you must create databases for each through your cPanel.
If you have no existing database, create a new one via cPanel's MySQL Databases section.
How do you add a MySQL database and database user to your account?
Please refer to the article, How to Create or Delete a MySQL Database or User, for creating a database and database user.
Do you have to remove the old database before importing the backup database file, or is that done automatically?
If you wish to use a different .sql file or import your backup file for your existing database, you must first DROP all the database tables. Not dropping all tables will retain the tables that do not exist in the new .sql file and overwrite the existing ones. However, you can still retain some tables in that database. The tables in your new .sql file will overwrite those with the same name in the database.