Importing MySQL Databases from the Command Line
MySQL databases are often exported as .sql
files, containing SQL statements to recreate the database structure and populate it with data. This tutorial explains how to import these .sql
files into your MySQL server using the command line, a fundamental skill for database administrators, developers, and anyone managing MySQL databases.
Prerequisites
- MySQL Server: You need a running MySQL server instance.
- MySQL Client: The
mysql
client must be installed and accessible from your command line. This is usually part of the MySQL server installation. .sql
File: Have the.sql
file containing your database backup or export ready.- Credentials: You’ll need a MySQL user account with the necessary privileges to create databases and import data.
Importing from the Command Line
The most common method for importing a .sql
file is using the mysql
command directly from your terminal or command prompt.
Basic Syntax:
mysql -u <username> -p <database_name> < <path_to_sql_file>
-u <username>
: Specifies the MySQL username you want to connect with. Replace<username>
with your actual username (e.g.,root
).-p
: Prompts you to enter the password for the specified username. For security reasons, it’s best to use this option instead of including the password directly in the command.<database_name>
: The name of the database you want to import the data into. If the database doesn’t exist, you’ll need to create it first (see the "Creating the Database" section below).< <path_to_sql_file>
: This redirects the contents of the.sql
file into themysql
command. Replace<path_to_sql_file>
with the full path to your.sql
file (e.g.,/home/user/backup.sql
).
Example:
mysql -u root -p mydatabase < /path/to/backup.sql
This command will connect to the MySQL server as the root
user, prompt for the password, select the mydatabase
database, and execute the SQL statements contained in backup.sql
.
Important Security Note: While you can include the password directly after the -p
flag (e.g., -pPassword123
), this is strongly discouraged as it exposes your password in your shell history and potentially to other users on the system. Always use the -p
option without a password to be prompted securely.
Creating the Database
If the database you want to import into doesn’t already exist, you’ll need to create it first. You can do this using the MySQL client:
-
Connect to MySQL:
mysql -u <username> -p
-
Create the Database:
CREATE DATABASE <database_name>;
Replace
<database_name>
with the desired name of your database. -
Exit the MySQL client:
exit;
After creating the database, you can then use the import command described above, specifying the newly created database name.
Importing Within the MySQL Client
Alternatively, you can import the .sql
file from within the MySQL client itself:
-
Connect to MySQL:
mysql -u <username> -p
-
Select the Database:
USE <database_name>;
-
Source the SQL File:
SOURCE <path_to_sql_file>;
This command tells the MySQL client to execute the SQL statements contained in the specified
.sql
file. -
Exit the MySQL client:
exit;
Troubleshooting
- Permissions: Ensure that the MySQL user you’re connecting with has the necessary permissions to create databases and import data.
- File Path: Double-check the path to your
.sql
file. Incorrect paths are a common source of errors. - SQL Errors: If the import fails, examine the error messages for clues about the problem. The errors may be due to syntax errors in the
.sql
file. - Large Files: Importing very large
.sql
files can take a significant amount of time and resources. Consider using tools likepv
(pipe viewer) to monitor the progress or splitting the file into smaller chunks if necessary.